\_ SMTP quoth Kimbro Staken on 4/22/2001 16:08 as having spake thusly: \_ \_ Try this \_ \_ $bufr =~ /\<(.*\@.*)\>/; \_ if ($1) { \_ $email = $1; \_ } Ah, but this could lead to amusements if you fail to match on the pattern and $1 is still 'good' from a previous match: $bufr = "I love spam"; $bufr =~ /I love (\w+)/; $buf =~ /<(.*@.*)>/; if ($1) { print "What do I love: $1\n"; } Which is not what you want. Try instead: if ($bufr =~ /<\w+@\w+\.\w+>/) { $email = $1; # other logic for having detected valid email here } Notice the the regex is closer to enforcing a valid email, but still does not guarantee it. For instance, it ignores local deliveries as valid (sinck) and probably some other cases. YMMV. David, JAPH