in reply to Re^2: Learning Perl - Question About Using a For Loop To Pull Data From an Array
in thread Learning Perl - Question About Using a For Loop To Pull Data From an Array

What this foreach $counter (@userNumber){} does is assign $counter to each value in the array @userNumber. It does this on a first in, first out basis. If the user entered say 1,3,2.. The first loop $counter = 1, then $counter =3, then on last loop, $counter = 2. Before print "\nthe name is: $names[$counter - 1], add a statement, print "counter = $counter\n";. And you can see what counter is. Use some non-sequential test cases.

Part of the problem here is a rather poor choice of names for "counter". $name_number or something similar would have been better. There is no "count" function of $counter! It is being used as a 1 based index to the names array. Perl starts arrays at 0, not one, so that is what $counter-1 is all about. Hopefully that makes sense?