sub getArrayIndex {
my $value = shift;
for my $index(0..$#_) {
return $index if $value eq $_[$index];
}
return -1;
}
####
for ($i=0,$i<$x,$i++)
####
# to just iterate over an array; each element assigned to $_
# changing $_ changes the original array element
for (@array) {
# assigning to $_ here will change original array
# comparing to $_ of course will not
}
# to iterate over a range
for (0..10) {
# $_ will be set to 0 to 10 in sequence
}
# to iterate over a range with a named op
for $i(0..10) {
# $i will be set to 0 to 10 in sequence
}
####
for (0..$#array) { }
for (0..@array) { }
####
@array = qw(1);
print "My array @array\n";
for (0..10) {
for (0..@array) {$array[$_]++}
}
print "My array @array\n";
####
My array 1
My array 12 11 10 9 8 7 6 5 4 3 2 1
####
# really short idiomatic version
sub getArrayIndex {
map{return --$_ if $_[0] eq $_[$_]}(1..@_-1) and -1
}
# test code
@array = qw(0 2 4 6 8 10 12);
print getArrayIndex(6,@array),"\n";
print getArrayIndex(5,@array),"\n";