aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2019-11-16 10:48:00 +0000
committerGitHub <noreply@github.com>2019-11-16 10:48:00 +0000
commit2960845ff5cc96326f78248c1c2cf075c49ceaa4 (patch)
tree53fd7ea77535cf50d225bce26bc21b855683d7f1
parentfc1067ab11d94824b47346adf9d73a37e28874ab (diff)
parent4b759e5549a0ac5a2702a94078c25454a096b84e (diff)
downloadperlweeklychallenge-club-2960845ff5cc96326f78248c1c2cf075c49ceaa4.tar.gz
perlweeklychallenge-club-2960845ff5cc96326f78248c1c2cf075c49ceaa4.tar.bz2
perlweeklychallenge-club-2960845ff5cc96326f78248c1c2cf075c49ceaa4.zip
Merge pull request #936 from choroba/ech34
Solve both tasks of 034 in one script
-rwxr-xr-xchallenge-034/e-choroba/perl5/ch-1+2.pl36
1 files changed, 36 insertions, 0 deletions
diff --git a/challenge-034/e-choroba/perl5/ch-1+2.pl b/challenge-034/e-choroba/perl5/ch-1+2.pl
new file mode 100755
index 0000000000..70f6eedb41
--- /dev/null
+++ b/challenge-034/e-choroba/perl5/ch-1+2.pl
@@ -0,0 +1,36 @@
+#!/usr/bin/perl
+use warnings;
+use strict;
+use feature qw{ say };
+
+my @keys = qw( not_this_one
+ this_one
+ this_one_too
+ it_was_enough );
+
+my %hash = (not_this_one => 'not selected',
+ this_one => 'selected first',
+ this_one_too => 'selected second',
+ it_was_enough => 'not selected either');
+
+my %dispatch = (show_array_slice => \&show_array_slice,
+ show_hash_slice => \&show_hash_slice,
+ show_index_value_slice => \&show_index_value_slice);
+
+my $what_to_show = shift;
+my $action = $dispatch{$what_to_show}
+ || sub { die "Unknown action $what_to_show!\n" };
+$action->();
+
+sub show_array_slice {
+ say for @keys[1, 2];
+}
+
+sub show_hash_slice {
+ say for @hash{ @keys[1, 2] };
+}
+
+sub show_index_value_slice {
+ my %selected = %hash{ @keys[1, 2] };
+ say for values %selected;
+}