aboutsummaryrefslogtreecommitdiff
path: root/challenge-132
diff options
context:
space:
mode:
authorMohammad S Anwar <mohammad.anwar@yahoo.com>2021-10-04 02:24:14 +0100
committerMohammad S Anwar <mohammad.anwar@yahoo.com>2021-10-04 02:24:14 +0100
commitb415400499aa785bf52485951f7c45bd4dcc96a4 (patch)
tree63445c00e20adfac73d48130d3a27915ce2d3302 /challenge-132
parentecc34a2666ccf3966a887cb83d31248dca45ecb0 (diff)
downloadperlweeklychallenge-club-b415400499aa785bf52485951f7c45bd4dcc96a4.tar.gz
perlweeklychallenge-club-b415400499aa785bf52485951f7c45bd4dcc96a4.tar.bz2
perlweeklychallenge-club-b415400499aa785bf52485951f7c45bd4dcc96a4.zip
- Tidied up Perl solution to task 2 of week 132.
Diffstat (limited to 'challenge-132')
-rw-r--r--challenge-132/mohammad-anwar/perl/ch-2.pl30
1 files changed, 18 insertions, 12 deletions
diff --git a/challenge-132/mohammad-anwar/perl/ch-2.pl b/challenge-132/mohammad-anwar/perl/ch-2.pl
index 08fc1ca0f2..36f1959af9 100644
--- a/challenge-132/mohammad-anwar/perl/ch-2.pl
+++ b/challenge-132/mohammad-anwar/perl/ch-2.pl
@@ -33,18 +33,24 @@ my @player_names = (
["Simon","Duane" ],
);
-my $names = {
- map {
- join(" ", @$_) => { f => $_->[0], l => $_->[1] }
- } @player_names
-};
-
-foreach my $player (@player_ages) {
- my $first_name = $player->[1];
- my $age = $player->[0];
- foreach my $n (keys %$names) {
- if ($names->{$n}->{f} eq $first_name) {
- print "$age, $first_name, $names->{$n}->{l}\n";
+hash_join(\@player_ages, 1, \@player_names, 0);
+
+sub hash_join {
+ my ($table_1, $key_1, $table_2, $key_2) = @_;
+
+ my $names = {
+ map {
+ join(", ", @$_) => $_->[$key_2]
+ } @$table_2
+ };
+
+ foreach my $player (@$table_1) {
+ my $key = $player->[$key_1];
+ my $age = $player->[0];
+ foreach my $n (keys %$names) {
+ if ($names->{$n} eq $key) {
+ print "$age, $n\n";
+ }
}
}
}