while () { chomp; my @parts = split /:\s+/, $_; next if $#parts < 3; my @parts_of_3 = $parts[3] =~ /^(\d+) <(.*)>$/; next unless @parts_of_3; my @result = ($parts[1], @parts_of_3); print(join(', ', @result), "\n"); } __DATA__ Jul 6 14:36:41 moe postfix/smtp[15107]: A73DC113B63: to=, relay=adamant.concentric.com[207.155.248.168], delay=17, status=bounced (host adamant.concentric.com[207.155.248.168] said: 554 : Recipient address rejected: Unknown or invalid user oetiker@concentric.com (in reply to RCPT TO command))