diff options
| author | Niels van Dijke <perlboy@cpan.org> | 2021-01-11 08:52:16 +0000 |
|---|---|---|
| committer | Niels van Dijke <perlboy@cpan.org> | 2021-01-11 08:52:16 +0000 |
| commit | 92f36ebe63ccb5997a54115aa3fcbc822e838bbd (patch) | |
| tree | e3952fcee5b0ee1d7e00387940bd10af5ca3cdf1 | |
| parent | 5ab993f243ab1a835d8f30aa6c97b2d3b99496af (diff) | |
| download | perlweeklychallenge-club-92f36ebe63ccb5997a54115aa3fcbc822e838bbd.tar.gz perlweeklychallenge-club-92f36ebe63ccb5997a54115aa3fcbc822e838bbd.tar.bz2 perlweeklychallenge-club-92f36ebe63ccb5997a54115aa3fcbc822e838bbd.zip | |
Task 1 & 2
| -rwxr-xr-x | challenge-095/perlboy1967/perl/ch-1.pl | 23 | ||||
| -rwxr-xr-x | challenge-095/perlboy1967/perl/ch-2.pl | 72 |
2 files changed, 95 insertions, 0 deletions
diff --git a/challenge-095/perlboy1967/perl/ch-1.pl b/challenge-095/perlboy1967/perl/ch-1.pl new file mode 100755 index 0000000000..db625358c0 --- /dev/null +++ b/challenge-095/perlboy1967/perl/ch-1.pl @@ -0,0 +1,23 @@ +#!/usr/bin/perl + +# Perl Weekly Challenge - 095 +# - https://perlweeklychallenge.org/blog/perl-weekly-challenge-095/ +# +# Task 1 - Palindrome Number +# +# Author: Niels 'PerlBoy' van Dijke + +use v5.16; +use strict; +use warnings; + +# Unbuffered STDOUT +$|++; + +my $A = shift(@ARGV) // 1221; +my $B = reverse scalar $A; +my $C = ($A eq $B); + +printf "Input: %d\n", $A; +printf "Output: %d%s\n", + $C,($C ? '' : ", since $A and $B are not the same"); diff --git a/challenge-095/perlboy1967/perl/ch-2.pl b/challenge-095/perlboy1967/perl/ch-2.pl new file mode 100755 index 0000000000..49ece51f5c --- /dev/null +++ b/challenge-095/perlboy1967/perl/ch-2.pl @@ -0,0 +1,72 @@ +#!/usr/bin/perl + +# Perl Weekly Challenge - 095 +# - https://perlweeklychallenge.org/blog/perl-weekly-challenge-095/ +# +# Task 1 - Palindrome Number +# +# Author: Niels 'PerlBoy' van Dijke + +use v5.16; +use strict; +use warnings; + +use Data::Printer; + +# Unbuffered STDOUT +$|++; + + +my $stack = Stack->new; +$stack->push(2); +$stack->push(-1); +$stack->push(0); +$stack->pop; # removes 0 +printf "top: %d\n", $stack->top; # prints -1 +p $stack; + +$stack->push(0); +printf "min: %d\n", $stack->min; # prints -1 +printf "max: %d\n", $stack->max; # prints 2 +p $stack; + + +package Stack; + +use List::Util; + +sub new { + my ($class) = @_; + + bless [], $class; +} + +sub push { + my ($this, $value) = @_; + + CORE::push(@$this, $value); +} + +sub pop { + my ($this) = @_; + + CORE::pop(@$this); +} + +sub top { + my ($this) = @_; + + return $this->[-1]; +} + +sub min { + my ($this) = @_; + + return List::Util::min(@$this); +} + +sub max { + my ($this) = @_; + + return List::Util::max(@$this); +} |
