global special variable for array index?

Bruce Timberlake brucet at
Thu Apr 20 18:24:46 CDT 2000

> Isn't there a global special variable for the list index when you're
> stepping through a list with a for (= foreach) statement?  For
> example, I frequently have code like this:
> my $index;
> for my $element (@list)
> {
>     # some processing on $element
>     $index++;
> }
> It would be much easier if there were a global special variable (like
> $. for line numbers) so I don't have to keep track of $index myself.

First off, with that syntax you want to be doing a "foreach," not "for."
 I don't think there is a special variable a la $_ for loop iteration
counting.  I think what would work for you is:

  $index = @list;

at the loop exit, which will set $index equal to the number of elements
in @list.  E.g.,
  my $index;
  my $element;
  @list = ("Larry", "Moe", "Curly");
  foreach $element (@list) {
    ... # process $element
  $index = @list;  # $index now equals 3

Hope this helps!


FREE voicemail, email, and fax...all in one place.
Sign Up Now!


The posting address is: san-diego-pm-list at

List requests should be sent to: majordomo at

If you ever want to remove yourself from this mailing list,
you can send mail to <majordomo at> with the following
command in the body of your email message:

    unsubscribe san-diego-pm-list

If you ever need to get in contact with the owner of the list,
(if you have trouble unsubscribing, or have questions about the
list itself) send email to <owner-san-diego-pm-list at> .
This is the general rule for most mailing lists when you need
to contact a human.

More information about the San-Diego-pm mailing list