diff options
| -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); +} |
