my @array = qw( foo bar rat ); while (my ($val,$idx) = each @array) { say "$val at $idx"; } # produces foo at 0 bar at 1 rat at 2