メールアドレス一覧から、携帯メールアドレスを抽出する処理をPerlで書いてみた。
#!/usr/bin/perl -w use strict; use warnings; sub write_file { my $filename = shift(); my $data = shift(); open(FH, "> $filename") or die("$! -> $filename"); print(FH $data); close(FH); } my %mobile_domains = ( 'docomo.ne.jp' => 'docomo', 'softbank.ne.jp' => 'SoftBank', 'd.vodafone.ne.jp' => 'SoftBank', 'h.vodafone.ne.jp' => 'SoftBank', 't.vodafone.ne.jp' => 'SoftBank', 'c.vodafone.ne.jp' => 'SoftBank', 'r.vodafone.ne.jp' => 'SoftBank', 'k.vodafone.ne.jp' => 'SoftBank', 'n.vodafone.ne.jp' => 'SoftBank', 's.vodafone.ne.jp' => 'SoftBank', 'q.vodafone.ne.jp' => 'SoftBank', 'ezweb.ne.jp' => 'au', 'disney.ne.jp' => 'Disney Phone', ); my (@mobile, @pc); my @mailaddress = qw( aaaaa@gmail.com bbbbb@docomo.ne.jp ccccc@softbank.ne.jp ddddd@ezweb.ne.jp eeeee@yahoo.co.jp ); for my $addr (@mailaddress) { if ($addr =~ m!^[^@]+@[^@]+$!) { my ($name, $domain) = split('@', $addr); if (exists($mobile_domains{$domain})) { push(@mobile, $addr); } else { push(@pc, $addr); } } } write_file("mobile_addr.txt", join("\n", @mobile)); write_file("pc_addr.txt", join("\n", @pc));
実行すると、mobile_addr.txtに携帯メアド、pc_addr.txtにそれ以外のメアドが書かれたファイルを出力するぞい。