ルモーリン
ホーム更新サービス雑談ランドナーコースガイド鉄ゲタ自転車Linuxリンク連絡先

メールアドレスを引き抜く

きっかけ

このツイートを見て。

コード

ということでこんな感じ。 おそらく要望者の意図と違うので使えない(大笑い)。
#!/usr/bin/env perl

use utf8;
use warnings;
use strict;
use open IO => ":utf8";

use Encode::Locale;

binmode STDOUT, ":encoding(console_out)";

$| = 1;

my %pull_out = map {($_->{name}, 1)} load_list();
for (grep {!exists $pull_out{$_->{name}}} load_list()) {
	print "$_->{mail}\n";
}

exit;

sub load_list {
	my @mail;
	while (<>) {
		chomp;
		my ($name) = /^([^@]+)/;
		push @mail, {
			name => $name,
			mail => $_,
		};
		last if eof;
	}

	return @mail;
}

使い方

スクリプトに続いて引き抜くリストのファイルとメールアドレス一覧のファイルを並べると、残りのメールアドレスが出てきます。 文字コードはUTF-8(BOMなし)改行はLFだけです。
perl sample_13.pl sample_13_2.txt sample_13_1.txt

実行結果

Windows(ActivePerl)とLinux(CentOS)ともにPerlのバージョンは5.24です。
sample_13_1.txt
aaa@aaa.com,あああ,いいい
bbb@bbb.com,ううう,えええ
ccc@ccc.com,おおお,かかか
ddd@ddd.com,hhh,rrr
sample_13_2.txt
bbb@bbb.com,ききき,くくく
ccc@ccc.com,けけけ,こここ
出てくるものは
aaa@aaa.com,あああ,いいい
ddd@ddd.com,hhh,rrr
よしバッチリ♪