package Series; use strict; use warnings; use feature qw; use Exporter qw; our @EXPORT_OK = qw; sub slices { my ($args) = @_; 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;