in reply to Help taming File::Find

It would have been nice if you had included the warning message ;-) Update: Oh, so there it is - quite well hidden, indeed! :-) Confirms my suspicions, too.

I'm betting it's your sub wanted inside your sub get_files. A slight change may help if this is the case:

sub get_files { my $directory = shift; opendir (DIR, $directory) or die "couldn't open directory: $direct +ory"; my @myfiles; my @directories_to_search = ("$directory"); my $wanted = sub { my $name = $File::Find::name; if ( $name =~ /html$/i && ! ( $name =~ /\.backup\.before/i ) ) + { $name =~ s|\\|/|; # substitute forward slash for back slas +hes, icky but don't know a better way. #print "name: $name\n"; push @myfiles, $name; } } # end sub wanted find($wanted, @directories_to_search); return @myfiles; }

Update 2: For those who may have missed it, all I did was move the named "wanted" sub to an anony-sub, and put a ref to it in a lexical variable named "$wanted", and used that. I didn't change any of the rest of tphyahoo's code.

Replies are listed 'Best First'.
Re^2: Help taming File::Find
by tphyahoo (Vicar) on Jun 13, 2005 at 17:10 UTC
    Thanks Tanktalus. I did include the warning message, though I suppose it was a bit buried. Warning was, "Variable "@myfiles" will not stay shared at fileFindTroubleshooting.p +l line 34."