http://www.perlmonks.org?node_id=357205


in reply to Working with Subfolder

Mah, probably i don't understand your problem but:

 if ($_ =~ /\.9$/)
Match for file that ends with .9.
But what do you want to pass to the subroutine process?
Seems that you pass the folder ok? but what is 'find' another subroutine? But i don't understand where you are listing the files on the directory. In a unix system you can use 'ls' to make a simple listing of directory.
#!/usr/bin/perl $test = process ($folder); #absolute dir $folder = 'test'; system ("ls $folder > files"); ### Now you have a file that is a list of the files in the directory ### You can now applicate process at every line of the file sub process { if ($_ =~ /\.9$/) { print "\nProcessing the fort.9 files, from taylor type to z values\ +n"; open (FILE, '<', $_) or die "Cannot open file: $!"; $/= "# input for"; while (<FILE>) { #do something push(@outLines, $_ ); } close FILE; open ( OUTFILE, ">adjusted.learn" ) or die "Cannot open file: $!"; print ( OUTFILE @outLines ); close ( OUTFILE ); } } print $test,"\n"; exit;

Hope that it's help you