Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number

Re: Limited Number of User Input

by graff (Chancellor)
on Mar 22, 2013 at 04:13 UTC ( #1024866=note: print w/replies, xml ) Need Help??

in reply to Limited Number of User Input

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: *.foo # (matches all files with a ".foo" extension" #or: this_long_name.txt that_other_long_name.xml # where hitting <tab> after "thi" and "tha" completes each name automa +tically
Then the script just looks at @ARGV to know how many files were given, and what their names are:
#!/usr/bin/perl ... printf "There were %d files mentioned on the command line:\n", scalar +@ARGV; print join "\n", @ARGV, ''; ...

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1024866]
[marto]: time for coffee

How do I use this? | Other CB clients
Other Users?
Others about the Monastery: (8)
As of 2018-05-21 08:16 GMT
Find Nodes?
    Voting Booth?