Are you sure you mean $_ and not (after first shift) $_[0]? wanted doesn't get any parameters, so what you have above is only correct if your found() expects the filename via a parameter, not $_.
This works for me:
$ perl -MFile::Find -we'$obj=bless []; sub found { print "looking at $
+_\n" }
> find(sub {$obj->found}, "pbed/fooble")'
looking at .
looking at a
looking at b
looking at c
| [reply] [d/l] |
wanted(), being the non-OO answer, is supposed to recieve a file name via $_. Check the perldoc, it backs me up. Not that I'm saying its the best way that this should have been done, but find is supposed to produce 3 elements for your called subroutine:
- $File::Find::name => Path + Filename.
- $File::Find::dir => Path
- $_ => Filename
I'm not sure whether it clashes or agrees with your statement. Regardless, I'm getting the data as I think it works, like this:
Calling: find(sub{$obj->found($_)},"dir");
Called:
sub found
{
my $self=shift;
my ($full_name, $file_dir,$file_name) = ($File::Find::name,$File::F
+ind::dir,@_);
}
Thanks again!!
| [reply] [d/l] [select] |