for(my $i = $#data; $i > 0; $i--) { if ($data[$i] =~ /\|/) { $last_line = $data[$i]; $i=0; # correct line found, exit loop. } } # or # for my $line (reverse @data) { $last_line = $line; last if $line =~ /\|/; } #### ( $directory, $search_string, ..., $scan_down...) = split('|',$last_line); #### print SAVED_SEARCH (join '|', $directory, $search_string, ..., $scan_down..., "\n");