diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2019-11-16 01:45:03 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-11-16 01:45:03 +0000 |
| commit | 7356e3397fbb443378b35e5e7496bc2dc9ae8b31 (patch) | |
| tree | ae3e1fddc6a8b0917a303ccda1e18f3e2d7521e1 /challenge-034 | |
| parent | 95a6b4dd37014a0c23cba0689e528e75414f8e92 (diff) | |
| parent | 51c3bb5c5ab9c095356d4b01678f24a5ed9cbd2d (diff) | |
| download | perlweeklychallenge-club-7356e3397fbb443378b35e5e7496bc2dc9ae8b31.tar.gz perlweeklychallenge-club-7356e3397fbb443378b35e5e7496bc2dc9ae8b31.tar.bz2 perlweeklychallenge-club-7356e3397fbb443378b35e5e7496bc2dc9ae8b31.zip | |
Merge pull request #934 from davorg/master
Challenge #034 / Tasks #1 & #2
Diffstat (limited to 'challenge-034')
| -rw-r--r-- | challenge-034/dave-cross/perl5/ch-1.pl | 26 | ||||
| -rw-r--r-- | challenge-034/dave-cross/perl5/ch-2.pl | 23 |
2 files changed, 49 insertions, 0 deletions
diff --git a/challenge-034/dave-cross/perl5/ch-1.pl b/challenge-034/dave-cross/perl5/ch-1.pl new file mode 100644 index 0000000000..68cd75d97b --- /dev/null +++ b/challenge-034/dave-cross/perl5/ch-1.pl @@ -0,0 +1,26 @@ +#!/usr/bin/perl + +use strict; +use warnings; + +use feature 'say'; + +open my $fh, '<', '/etc/passwd' or die $!; + +my @users; + +while (<$fh>) { + chomp; + my %user; + + # Lvalue is a hash slice + # Rvalue is a list slice + @user{qw[user id shell]} = (split /:/)[0, 2, -1]; + + push @users, \%user; +} + +for (@users) { + # Another hash slice + printf "User: %s, Shell: %s\n", @{$_}{qw[ user shell ]}; +} diff --git a/challenge-034/dave-cross/perl5/ch-2.pl b/challenge-034/dave-cross/perl5/ch-2.pl new file mode 100644 index 0000000000..94c66313bc --- /dev/null +++ b/challenge-034/dave-cross/perl5/ch-2.pl @@ -0,0 +1,23 @@ +#!/usr/bin/perl + +use strict; +use warnings; + +use feature 'say'; + +my %dispatch = ( + '+' => sub { $_[0] + $_[1] }, + '-' => sub { $_[0] - $_[1] }, + 'x' => sub { $_[0] * $_[1] }, + '/' => sub { $_[0] / $_[1] }, +); + +@ARGV == 3 or die "Usage: Num1 Op Num2\n"; + +my ($x, $op, $y) = @ARGV; + +unless ($dispatch{$op}) { + die "'$op' is not a supported operator\n"; +} + +say "@ARGV is ", $dispatch{$op}->($x, $y); |
