Thread auflistung der Variablen (9 answers)
Opened by elvira at 2006-06-14 13:53

Dubu
 2006-06-14 14:43
#28569 #28569
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
[quote=elvira,14.06.2006, 11:53]ich habe es folgenderweise probiert, aber hat nicht funktioniert:
[/quote]
"hat nicht funktioniert" ist eine etwas vage Aussage. Was hat nicht funktioniert? Wie lautete die Fehlermeldung bzw. was ist passiert?

So wie es aussieht, benutzt du auch kein "use strict" und "use warnings". Das sei dir wirklich ans Herz gelegt, um Fehler zu finden! (s. Wiki:Wissensbasis.UseStrict)

Quote
Code: (dl )
1
2
3
my $directory="/Perl/BugFiles";
opendir(RDIR, $directory) or die "das Verzeichnis konnte nicht geöffnet werden";
my @fileList= grep(!/^\.?$/, readdir(RDIR));

Cargo Cult Copying? Dein grep entfernt Verzeichniseinträge, die entweder "." lauten oder leer sind (was gar nicht vorkommen kann). Normalerweise entfernt man "." und "..", d.h.
Code: (dl )
my @fileList= grep(!/^\.\.?$/, readdir(RDIR));


Quote
Code: (dl )
1
2
3
4
5
close(RDIR);

foreach $file(@fileList)   {
  open (WRITEFILE, ">/Perl/ExtractedData/data.txt");
  open(READFILE, "</Perl/BugFiles/$file");

Hier fehlen die Fehlerabfragen für die beiden open():
Code: (dl )
1
2
3
open (WRITEFILE, '>', '/Perl/ExtractedData/data.txt') 
   or die "could not open /Perl/ExtractedData/data.txt: $!";
[und analog weiter]


Quote
Code: (dl )
1
2
3
4
5
   while (my $row=<READFILE>) {
    if($row=~/<TITLE>(.+)-$/){
       my $bugnumber=$1;
    }
[... etc ...]

- Die Regexp kommt mir ein wenig komisch vor, aber ich kenne den Aufbau dieser Bugreport-Dateien ja nicht. Endet die Titelzeile wirklich mit einem '-'?

- Wenn du die Variablen innerhalb des if-Blocks deklarierst, sind sie auch nur da sichtbar. Sie sollten wohl eher vor dem while() deklariert sein.

Quote
Code: (dl )
1
2
3
4
     my @zeile=($bugnumber, $sender, $maintainer, $date, $package, $severity);

    print WRITEFILE $zeile;
  }

Dazu haben renee und esskar ja schon geschrieben. @zeile und $zeile sind zwei verschiedene Variablen, das erste ein Array und das zweite ein Skalar.

Dann wäre meine Bitte noch, dass du dir einen anderen Stil angewöhnst, Blöcke zu beenden und einzurücken. Momentan sieht es so aus, als ob die print-Anweisung noch innerhalb der while-Schleife liegt. Siehe dazu auch perlstyle und die eine oder andere Diskussion hier im Forum. ;)

View full thread auflistung der Variablen