It could be how you're entering the numbers. As a simple example of this, try the following:
chomp( @list = <STDIN> );
print "Item: ", ++$count, ", Value: $_\n" foreach @list;
If you are hitting 'enter' after each number, your output will look (for example) like this:
Item: 1, Value: 2
Item: 2, Value: 3
Item: 3, Value: 4
But if you're just entering each number one after the next, separated by whitespace, and hitting enter at the very end, your output will look like:
Item: 1, Value: 2 3 4
Hopefully that illustrates what is going on here. The quick fix is to alter the script to look like this:
chomp( @input = <STDIN> );
push( @list, split( /\s+/, $_ ) ) foreach @input;
foreach ( @list ) {
print "$names[$_-1]\n";
}
|