Hi,
hab ein kleines Perlscriptchen geschrieben:
#!perl -w
use strict;
use warnings;
sub showtree($$)
{
my $level = $_[0];
my $dir = $_[1];
chdir $dir or die "can't change to dir >$dir<: $!";
opendir(DIR, "$dir") or die "can't open dir >$dir<: $!";
my @allentries = grep { ! /^./ && ! -f "$dir/$_" } readdir(DIR);
foreach (@allentries)
{
print "$level$_\n";
showtree( "$level| ", "$dir\$_");
}
closedir DIR;
}
my $startdir = $ARGV[0];
showtree("", $startdir);
Es listet rekursiv alle Unterverzeichnisse auf ab dem Verzeichnis, das als erster Parameter übergeben wurde.
Das klappt auch hervorragend.
Aber:
Ich bekomme immer eine Warnung:
main::showtree() called too early to check prototype at D:\perl\dirtree.pl line 18.
Zeile 18 ist die mit dem rekursiven Aufruf.
Wie bekomme ich die Warnung weg, ohne "-w" im Aufruf oder "use strict;" bzw. "use warning;" oder den Prototype "($$)" wegzunehmen?
Das muß doch irgendwie möglich sein...
Mir ist sowieso nicht ganz klar, wieso es an dieser Stelle (lange nachdem der Prototyp feststeht) noch zu früh ist...
Vielen Dank im Voraus!
cu,
Andreas
Der Optimist: Das Glas ist halbvoll. - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/