aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-135/james-smith/perl/ch-1.pl8
1 files changed, 4 insertions, 4 deletions
diff --git a/challenge-135/james-smith/perl/ch-1.pl b/challenge-135/james-smith/perl/ch-1.pl
index a91fc49d88..62022269aa 100644
--- a/challenge-135/james-smith/perl/ch-1.pl
+++ b/challenge-135/james-smith/perl/ch-1.pl
@@ -23,9 +23,9 @@ done_testing();
sub middle3 {
my $n = shift;
return 'Not a number' unless $n =~ m{^-?\d+$};
- return 'Too short' unless $n =~ m{\d{3}};
- return 'Even digits' if $n =~ m{^-?(?:\d\d)+$};
- $n =~ s{^-}{};
- return substr $n, (-3 + length $n ) / 2, 3;
+ $n = abs $n;
+ return length $n < 3 ? 'Too short'
+ : (length $n)%2 ? substr $n, (-3 + length $n ) / 2, 3
+ : 'Even digits';
}