in reply to Re^3: Listing Files
in thread Listing Files

use strict; use warnings; use File::Find; find({ wanted => \&process_file, preprocess => \&preprocess, no_chdir +=> 1 }, @ARGV); #find({ wanted => \&process_file, no_chdir => 1 }, @ARGV); sub process_file { @List = (); if (-f $_) { print "This is a file: $_\n"; push(@List,$_); } else { print "This is not file: $_\n"; } return @List; } sub preprocess { print "pre-processing @_\n"; # never see this return sort @_; } @DIRLIST = @List; print "@DIRLIST\n";

I am trying to return List of Files from File:Find to main Module in @DIRLIST But do not know if it is possible to return a value from wanted sub in File:Find to main sub

Replies are listed 'Best First'.
Re^5: Listing Files
by aaron_baugher (Curate) on Sep 17, 2011 at 18:12 UTC

    Just create your list variable in the main scope of your script, so it'll be in scope inside the sub:

    my @list; find( \&wanted, '.'); say for @list; sub wanted { return unless -f; push @list, $File::Find::name; }