Thread Programmierungshilfe für PERL (9 answers)
Opened by asakalli at 2010-07-16 13:32

topeg
 2010-07-16 18:43
#139859 #139859
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
use Data::Dumper;

my @node;

for my $file (glob('/ver1/ver2/ver3/node*'))
{
  push(@node,[]);
  if(open(my $fh, '<', $file))
  {
    while(my $line=<$fh>)
    {
      if($line=~/exceed/)
      {
        my $data=join('',(split(/\s+/,$line))[3,4]);
        $data=~y/|/ /;
        $data=(split(/\s+/,$line))[2];
        push(@{$node[-1]},$data);
      }
    }
    close($fh);
  }
  else
  { warn("ERROR open $file ($!)\n"); }
}
print Dumper(\@node);


Ich habe mal den Filer von dir in perl nach gebaut. Das geht sicher einfacher mit einem regulären Ausdruck, wenn ich weiß wie die Zeile aussieht und was du haben willst. So wie es jetzt da steht ist es eine genaue Umsetzung, das ist aber unnötig kompliziert.

Weiterhin verstehe ich deinen Code auch nicht vollständig. Wofür ist die "for" Schleife? das macht in keiner weise Sinn, da du nur 100 mal das selbe machst. Zudem Durchsuchst du nicht 100 Verzeichnisse sondern in einem Verzeichnis alle Dateien die mit "node" anfangen.

Ohne etwas mehr Details bezüglich des Inhaltes den du in den Dateien suchst können wir dir kaum helfen. Es ist wichtig zu er fahren was du suchst um zu wissen wo der Fehler auftaucht.

View full thread Programmierungshilfe für PERL