in reply to Perl equivlanet of simple awk

for such conversions you can use a2p

> echo '/user@example.com/ {print $2}' |a2p #!/usr/bin/perl eval 'exec /usr/bin/perl -S $0 ${1+"$@"}' if $running_under_some_shell; # this emulates #! processing on NIH machines. # (remove #! line above if indigestible) eval '$'.$1.'$2;' while $ARGV[0] =~ /^([A-Za-z_0-9]+=)(.*)/ && shift; # process any FOO=bar switches $, = ' '; # set output field separator $\ = "\n"; # set output record separator while (<>) { ($Fld1,$Fld2) = split(' ', $_, -1); if (/user@example.com/) { print $Fld2; } }

anyway you're not checking the first column but the whole line for an email address.

consider prepending an ^ in your regex.

Cheers Rolf

UPDATE: IMHO the @ in the regex should be escaped to avoid array interpolation, seems to be a bug in a2p.