aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Pankoff <ccntrq@screenri.de>2020-11-01 16:40:16 +0100
committerAlexander Pankoff <ccntrq@screenri.de>2020-11-01 19:17:55 +0100
commitcaee33c77cf068b2fec5cb4b957f92e5f8f1d57b (patch)
tree54d65293cd883d5351cbca49d9235b842377c2d4
parentc5c9b929fec939b0cc52b1dde34eae86df8c7f1a (diff)
downloadperlweeklychallenge-club-caee33c77cf068b2fec5cb4b957f92e5f8f1d57b.tar.gz
perlweeklychallenge-club-caee33c77cf068b2fec5cb4b957f92e5f8f1d57b.tar.bz2
perlweeklychallenge-club-caee33c77cf068b2fec5cb4b957f92e5f8f1d57b.zip
add perl solution for wk-084 ch-1
-rwxr-xr-xchallenge-084/alexander-pankoff/perl/ch-1.pl62
1 files changed, 62 insertions, 0 deletions
diff --git a/challenge-084/alexander-pankoff/perl/ch-1.pl b/challenge-084/alexander-pankoff/perl/ch-1.pl
new file mode 100755
index 0000000000..f444938edd
--- /dev/null
+++ b/challenge-084/alexander-pankoff/perl/ch-1.pl
@@ -0,0 +1,62 @@
+#!/usr/bin/env perl
+use v5.20;
+use utf8;
+use strict;
+use warnings;
+use feature qw(say signatures);
+no warnings 'experimental::signatures';
+
+use Scalar::Util qw(looks_like_number);
+
+use Pod::Usage;
+
+use constant SIGNED_32_BIT_INTEGER_MINIMUM => -2**31;
+use constant SIGNED_32_BIT_INTEGER_MAXIMUM => 2**31 - 1;
+
+my ($N) = @ARGV;
+
+pod2usage(
+ -message => "$0: Expects one integer number",
+ -exitval => 1,
+ )
+ if !defined $N
+ or $N !~ m/^-?[0-9]+/;
+
+say reverse_integer($N);
+
+sub reverse_integer($n) {
+ my $is_negative = $n =~ s/^-//;
+
+ my $reversed =
+ join( '', ( $is_negative ? '-' : '' ), reverse( split( //, $n ) ) );
+
+ return 0
+ if $reversed < SIGNED_32_BIT_INTEGER_MINIMUM
+ || $reversed > SIGNED_32_BIT_INTEGER_MAXIMUM;
+
+ return $reversed;
+}
+
+=pod
+
+=head1 NAME
+
+wk-084 ch-1 - Reverse Integer
+
+=head1 SYNOPSIS
+
+This script will print the reverse of the given integer. If the result doesn't
+fit into a signed 32-bit integers the result will be 0
+
+ch-1.pl <N>
+
+=head1 ARGUMENTS
+
+=over 8
+
+=item B<N> The input number
+
+
+=back
+
+=cut