exercism-perl5

Repository for my Perl 5 Exercism exercises
git clone git://git.samirparikh.com/exercism-perl5
Log | Files | Refs | README

commit 0ca298743e1fe7c1adae915e4a284531699f3f2f
parent e2cc8a0a2b9f1fb04ca6499043b5fbb4637a7796
Author: Samir Parikh <noreply@samirparikh.com>
Date:   Fri,  1 Jul 2022 19:33:15 +0000

get all tests to pass

Diffstat:
Mseries/Series.pm | 19++++++++++++++++++-
1 file changed, 18 insertions(+), 1 deletion(-)

diff --git a/series/Series.pm b/series/Series.pm @@ -9,7 +9,24 @@ our @EXPORT_OK = qw<slices>; sub slices { my ($args) = @_; - return undef; + + my $series = $args->{series}; + my $slice_length = $args->{sliceLength}; + + # order of error checking does matter + die "slice length cannot be zero" if $slice_length == 0; + die "slice length cannot be negative" if $slice_length < 0; + die "series cannot be empty" if ($series eq ""); + die "slice length cannot be greater than series length" + if $slice_length > length $series; + + my @slices; + + foreach my $index ( 0 .. (length $series) - $slice_length ) { + push @slices => substr( $series, $index, $slice_length ); + } + + return \@slices; } 1;