On Feb 6, Carl Rogers said: >I'm using foreach to do something to an array. is there a way I can >reference a previously 'seen' element without having to traverse the array >with a for(;;) statement? > >ie. I'd like this to work: > >foreach(@array) { > > if ($_ =~/somecondition/) { > # I want to do something to the element prior to $_ ($_ - 1) > } >} Just keep track of the previous element. my $is_first_iter = 1; my $prev_ele; for (@array) { if ($is_first_iter) { $prev_ele = $_; $is_first_iter = 0; next; } if (/condition/) { # fiddle with $prev_ele } $prev_ele = $_; } -- Jeff "japhy" Pinyan japhy@pobox.com http://www.pobox.com/~japhy/ RPI Acacia brother #734 http://www.perlmonks.org/ http://www.cpan.org/ ** Look for "Regular Expressions in Perl" published by Manning, in 2002 ** <stu> what does y/// stand for? <tenderpuss> why, yansliterate of course.Thread Previous