find({preprocess => sub { return sort @_ },wanted => \&Umwandeln}, "$dir");
1 2 3 4 5 6 7 8 9 10 11
use Term::ProgressBar; Findfile sucht nur "\d*.txt" - bzw gibt eine Liste zurück, wo nur diese Dateien enthalten sind. my $Dateienanzahl = AnzahlDerDateienVonFindFile my $Zaehler=1; my $progress = Term::ProgressBar->new ({count => $Dateienanzahl ,name => 'Bearbeite'}); foreach my $Datei (@dateien) { #@dateien ist Liste von Find::File $progress->update($Zaehler); &Umwandeln; $Zaehler++; }
2012-05-08T14:35:53 LebewesenUnd wie? Sollen wir raten, was du falsch machst?Ich bekomme Find einfach nicht dazu, dass es mir die Dateien in eine Variable ausgibt - ich habe schon mehrere Varianten probiert, die ich im Netz gefunden habe, aber es scheint immer zu einer Endlosschleife zu kommen...
1 2 3 4 5 6 7
my @found = (); sub wanted { if ($File::Find::name =~ /blahblubb\.log/) { push @found, $File::Find::name; } } say "Datei: $_" for @found;
1
2
3
String found where operator expected at GenerateCSV_akt.pl line 31, near "say "Datei: $_""
(Do you need to predeclare say?)
syntax error at GenerateCSV_akt.pl line 31, near "say "Datei: $_""
1 2 3 4 5 6 7 8 9 10 11 12 13 14
#!/usr/bin/perl use 5.008; use strict; use warnings; use File::Find; my $dir = '.'; my @array; find(sub { push @array, $File::Find::name }, $dir); print @array;
QuoteUnd wie du überprüfst, ob es die richtieg Datei ist, mittels Dateinamenvergleich, musst du doch wissen.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
#!/usr/bin/perl use 5.008; use strict; use warnings; use File::Find; my $dir = '.'; my @found = (); find(sub {if ($File::Find::name =~ /\d_12.*/){push @found, $File::Find::name;}}, $dir); my $anzahl=@found; print @found; print "\n\nAnzahl: $anzahl\n"; sub wanted { if ($File::Find::name =~ /.*/) { push @found, $File::Find::name; } }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
#!/usr/bin/perl use 5.008; use strict; use warnings; use File::Find; my $dir = '.'; my @found = (); my $i=2005; while (-d "$dir/$i"){ print "$i\n"; $i++; find({preprocess => sub { return sort @_ }, wanted => sub {if ($File::Find::name =~ /\d_12.*/){push @found, $File::Find::name;}}}, "$dir/$i"); } my $anzahl=@found; #print @found; print "\n\nAnzahl: $anzahl\n";
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
#!/usr/bin/perl use 5.008; use strict; use warnings; use File::Find; my $dir = '.'; my @found = (); my $i=2005; while (1){ my $path="$dir/$i"; last unless(-d $path); print "$path\n"; $i++; find({preprocess => sub { return sort @_ }, wanted => sub {if ($File::Find::name =~ /\d_12.*/){push @found, $File::Find::name;}}}, $path); } my $anzahl=@found; #print @found; print "\n\nAnzahl: $anzahl\n";