It would appear that this script is intended to be used interactively in a command-line shell. In that context, the typical approach for getting a list of file names from the user is to have the user provide the names on the command line, so that the script gets the list as @ARGV.
Every shell ever invented supports wildcard characters as a shortcut for specifying sets of file names on a command line, and every decent shell also provides tab completion of file names, so it's a lot easier for the user to supply file names on the command line when running the script. The user doesn't need to answer a question about how many files will be specified, and doesn't need to worry about typing mistakes while the script is running.
None of the snippets in the OP are necessary if the script can be run from the command-line prompt like this:
my_script.pl *.foo # (matches all files with a ".foo" extension"
my_script.pl this_long_name.txt that_other_long_name.xml
# where hitting <tab> after "thi" and "tha" completes each name automa
Then the script just looks at @ARGV to know how many files were given, and what their names are:
printf "There were %d files mentioned on the command line:\n", scalar
print join "\n", @ARGV, '';
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.
| & || & |
| < || < |
| > || > |
| [ || [ |
| ] || ] ||