diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2021-10-04 02:24:14 +0100 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2021-10-04 02:24:14 +0100 |
| commit | b415400499aa785bf52485951f7c45bd4dcc96a4 (patch) | |
| tree | 63445c00e20adfac73d48130d3a27915ce2d3302 /challenge-132 | |
| parent | ecc34a2666ccf3966a887cb83d31248dca45ecb0 (diff) | |
| download | perlweeklychallenge-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.pl | 30 |
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"; + } } } } |
