use warnings; use strict; my $s='^Pbishop@yahho.com^H17769025^D3352^Vblueangel@accessmo.com^H17769714^'. 'D3352^Oboe@­stooges.com^H17773126^D3352^Mbirk@joke.com^H17773968^D3352^'. 'Rbobfitz@mcione.com^H­17768877^D3352^Nbob@yohaoo.com^H17769806^D3352^R'; $.=0; map{my($f)=/@(.*?)\./;$.++;$.{$f}++}grep{/@/}split/\^/,$s; print"Addresses: $.\n",join"\n",map{"$_: $.{$_}"}keys(%.);