[email protected] (Andrew Solomon) writes:
> Hi Harry
>
> What do you want your code to do?
>
Devise a simple test script the counts the number of directories in a
hierarchy (This is building toward a more complex script in the end).
But taking small steps in an effort to really understand what is
happening.
>> find sub {
>> return if -f;
>> print "\$File::Find::dir<$File::Find::dir>\n";
>> }, $d;
Seemed to me, would do that. Skip -f type files and print all
directory names.
Instead I see:
>> Output:
>> reader > ./tst.pl
>> $File::Find::dir<./one>
>> $File::Find::dir<./one>
>> $File::Find::dir<./one/two>
That is the parent directory is printed twice, the second level is
printed as I'd expect. The third level is not printed at all.
I see on reflection that I should have just left any code concerning
-f files clear out and simply selected -d type files and printed them,
And more importantly changed what I'm printing... instead of
File::Find::dir what at first blush seemed like the right choice but
once you've selected only -d type then File::Find::name shows the
whole path:
find sub {
if (-d) {
print "\$File::Find::name<$File::Find::name>\n";
}
}, $d;
Which does return what I would expect... so now I can build on that
and try to get a little closer to something I can use.
$File::Find::name<./one>
$File::Find::name<./one/two>
$File::Find::name<./one/two/three>
I'm not really clear yet on why my first code did not cover all levels
of the hierarchy but the second stab does.
--
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
http://learn.perl.org/