in reply to How to Pass more than one file in perl MY function

You may find File::Find helps clean up the logic:

use strict; use warnings; use File::Find; my @matches = (qr(.*\.pl$), qr(.*\.pm$)); find(sub{wanted ($_, @matches)}, '.'); sub wanted { my ($name, @m) = @_; print "$File::Find::name\n" if grep {$name =~ /$_/} @m; }

Prints (on my system - your results will be different):

./noname1.pl ./noname1.pm ./noname2.pl ./noname2.pm ./SortaIniParser.pm ./StarTrek.pl ./Win32/FileVersionInfo.pm ./Win32/PEFile.pm

You can replace the grep {$name =~ /$_/} @m test with whatever suits your purpose.

Optimising for fewest key strokes only makes sense transmitting to Pluto or beyond

Replies are listed 'Best First'.
Re^2: How to Pass more than one file in perl MY function
by prad001 (Initiate) on Oct 05, 2022 at 18:04 UTC
    Thank you for the reply. How to pass location of the files in the above code? For example: I have all the files in /data/test/ location. Also, I have almost 30 unique file formats/types to search. In your example you have specified only 2, is there a limit of how many file formats I can pass?