***** infoCopter.com/perl *****

Loop Processing



# unsorted:
my @report_lines = qw(
        aaa|achterbahn
        bbb|betraham
        ccc|cebra
        aaa|anabolika
        bbb|butter
        ccc|caesium
        aaa|ameise
);

@report_lines = sort @report_lines;

my $email = my $email_before = (split /\|/, $report_lines[0])[0];
my $url = "";
my @changed_urls = ();

my $i = 0;
foreach (@report_lines) {
        ($email, $url) = split /\|/;

        if ($email ne $email_before) {
                print "\nSEND TO $email_before\n";
                foreach (@changed_urls) {
                        print "- $_\n";
                }
                @changed_urls = (); # reset
        }
        $email_before = $email;
        push @changed_urls, $url;
}

# Nachlauf
print "\nSEND TO $email_before:\n";
foreach (@changed_urls) {
        print "- $_\n";
}

Output:

SEND TO aaa
- achterbahn
- ameise
- anabolika

SEND TO bbb
- betraham
- butter

SEND TO ccc:
- caesium
- cebra
© reto :)