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