my $last = (map {/^.*(pat)/} <>)[-1]; #### my ($last) = (`grep pat file`)[1] =~ /^.*(pat)/; #### use autodie; open my $fh, "<", "file"; my $last; while (<>) { $last = $1 if /^.*(pat)/; }