#!/usr/bin/perl -w # # note: this assumes that each line in email_list.txt contains only # one email address use strict; open (EMAIL, "< email_list.txt") || die "cannot open email_list.txt: $!"; #open email address file while (my $email_address = ) { chomp($email_address); open (OUT, ">$email_address.txt") || die "cannot open $email_address: $!"; open (JOHN, "< john.txt") || die "cannot open john.txt: $!"; while (my $main_input = ) { chomp($main_input); if ($main_input =~ /email=/) { # matching email addresses is tricky, so YMMV on the # following $main_input =~ s/([a-zA-Z0-9]{3})\@([a-zA-Z0-9\.\-]*)\%?.*$/$email_address/; } print OUT "$main_input\n"; } close JOHN; close OUT; } close EMAIL;