in reply to A simple foreach question
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"; }
Dave
|
|---|