my($name,$mail,$attr,$iscompany)=map(($data->{$_}),qw(name mail attr iscompany));
$name=~s/,.*$//s;
my @nicks=();
- push @nicks,$1 while $name=~s/"([^"]*)"//s;
+ my $name_force;
+ while ($name=~s/"([^"]*)"([!])?//s) {
+ push @nicks,$1;
+ $name_force=$1 if $2;
+ }
$name=~s/\s*$//s;
$name=~s/^(\w+)\s+(\w+)$/$2 $1/s if !$iscompany;
- push @nicks,$name;
+ push @nicks,$name if !$name_force;
for (@nicks) {
$_.=".$attr" if $attr;
s/\s+/./gs;
}
map({
"nick"=>$_,
- "obj"=>Mail::Address->new($name,$mail),
+ "obj"=>Mail::Address->new(($name_force || $name),$mail),
},@nicks);
} @data);
for (@nicked) {