aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2020-05-26 07:14:12 +0100
committerGitHub <noreply@github.com>2020-05-26 07:14:12 +0100
commit716c5dea14b2dbb080dac9f1266bff2a58ed3797 (patch)
tree7586864b029f2dfe724ee2f74a709ba9c56507a2
parentd2913e75a239bf4534d1ac60e9a515314c962cfa (diff)
parent653cb05ccd2c99ab4c77e0f700fc7aeddb03bb8f (diff)
downloadperlweeklychallenge-club-716c5dea14b2dbb080dac9f1266bff2a58ed3797.tar.gz
perlweeklychallenge-club-716c5dea14b2dbb080dac9f1266bff2a58ed3797.tar.bz2
perlweeklychallenge-club-716c5dea14b2dbb080dac9f1266bff2a58ed3797.zip
Merge pull request #1763 from simonminer/062-simon-miner
Submission for PWC #62 task 1
-rw-r--r--challenge-062/simon-miner/perl/ch-1.pl27
-rw-r--r--challenge-062/simon-miner/perl/emails.txt5
2 files changed, 32 insertions, 0 deletions
diff --git a/challenge-062/simon-miner/perl/ch-1.pl b/challenge-062/simon-miner/perl/ch-1.pl
new file mode 100644
index 0000000000..6cce429f77
--- /dev/null
+++ b/challenge-062/simon-miner/perl/ch-1.pl
@@ -0,0 +1,27 @@
+#!/usr//bin/perl
+
+use strict;
+use warnings;
+use Getopt::Std;
+
+my %args = ();
+getopts( 'u', \%args );
+
+my %domains = ();
+my %seen = ();
+while ( <> ) {
+ chomp;
+ my ( $mailbox, $domain ) = split( m/\@/ );
+
+ my $normalized = $mailbox . '@' . lc( $domain );
+ next if $args{u} && exists( $seen{$normalized} );
+
+ push( @{ $domains{$domain} }, $mailbox );
+ $seen{$normalized} = 1;
+}
+
+my @sorted = ();
+for my $domain ( sort( { lc( $a ) cmp lc( $b ) } keys( %domains ) ) ) {
+ push( @sorted, map( {"$_\@$domain"} sort( @{ $domains{$domain} } ) ) );
+}
+print join( "\n", @sorted ) . "\n";
diff --git a/challenge-062/simon-miner/perl/emails.txt b/challenge-062/simon-miner/perl/emails.txt
new file mode 100644
index 0000000000..5dc3f2ceb0
--- /dev/null
+++ b/challenge-062/simon-miner/perl/emails.txt
@@ -0,0 +1,5 @@
+name@example.org
+rjt@cpan.org
+Name@example.org
+rjt@CPAN.org
+user@alpha.example.org