use List::MoreUtils qw( indexes ); my @array = qw( app Oracle EPDMCA Oracle EPZXC ); defined $array[$_+1] && print "$array[$_+1]\n" for indexes { $_ eq 'Oracle' } @array; #### my @array = qw( app Oracle EPDMCA Oracle EPZXC ); print "$array[$_]\n" for grep { $_>0 && $array[$_-1] eq 'Oracle' } 0 .. $#array; #### print "$array[$_]\n" for indexes { state $prev = ''; my $compare = $prev; $prev = $_; $compare eq 'Oracle'; } @array; #### print "$_\n" for grep { state $ix = -1; my $cmp_idx = $ix++; $cmp_idx >=0 && $array[$cmp_idx] eq 'Oracle'; } @array; #### my @array = qw( app Oracle EPDMCA Oracle EPZXC ); my $ix = 0; while( $ix < $#array ) { print $array[$ix+1] if $array[ix] eq 'Oracle'; $ix++; }