aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNiels van Dijke <perlboy@cpan.org>2021-01-11 08:52:16 +0000
committerNiels van Dijke <perlboy@cpan.org>2021-01-11 08:52:16 +0000
commit92f36ebe63ccb5997a54115aa3fcbc822e838bbd (patch)
treee3952fcee5b0ee1d7e00387940bd10af5ca3cdf1
parent5ab993f243ab1a835d8f30aa6c97b2d3b99496af (diff)
downloadperlweeklychallenge-club-92f36ebe63ccb5997a54115aa3fcbc822e838bbd.tar.gz
perlweeklychallenge-club-92f36ebe63ccb5997a54115aa3fcbc822e838bbd.tar.bz2
perlweeklychallenge-club-92f36ebe63ccb5997a54115aa3fcbc822e838bbd.zip
Task 1 & 2
-rwxr-xr-xchallenge-095/perlboy1967/perl/ch-1.pl23
-rwxr-xr-xchallenge-095/perlboy1967/perl/ch-2.pl72
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);
+}