#!/afs/athena/contrib/perl5/perl -w
# -*- cperl -*-

use strict;

open FROM, "from -v |"
  or die "from: open failed ($!)";

{
  local($/) = '';
  scalar <FROM>;  # drop the first chunk

  while (<FROM>) {
    my %hdr;
    foreach (split /\n+/) {
      my ($field, $value) = split /:\s*/, $_, 2;
      push @{$hdr{lc $field}}, $value;
    }
    my @to = map addr($_), map split(/\s*,\s*/), @{$hdr{'to'}};
    print if grep /^bert@/i, @to;
  }
}

close FROM
  or $! ? die "from: close failed ($!)" 
        : die "from: returned status $?\n";

sub addr {
  my ($addr) = @_;
  1 while $addr =~ s/\([^()]*\)//;
  map /<(.*)>/ ? $1 : $_, split /\s*,\s*/, $addr;
}
