exercism-perl5

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

Series.pm (752B) - raw


      1 package Series;
      2 
      3 use strict;
      4 use warnings;
      5 use feature qw<say>;
      6 
      7 use Exporter qw<import>;
      8 our @EXPORT_OK = qw<slices>;
      9 
     10 sub slices {
     11     my ($args) = @_;
     12 
     13     my $series       = $args->{series};
     14     my $slice_length = $args->{sliceLength};
     15 
     16     # order of error checking does matter
     17     die "slice length cannot be zero"     if $slice_length == 0;
     18     die "slice length cannot be negative" if $slice_length < 0;
     19     die "series cannot be empty" if ($series eq "");
     20     die "slice length cannot be greater than series length"
     21         if $slice_length > length $series;
     22 
     23     my @slices;
     24 
     25     foreach my $index ( 0 .. (length $series) - $slice_length ) {
     26         push @slices => substr( $series, $index, $slice_length );
     27     }
     28 
     29     return \@slices;
     30 }
     31 
     32 1;