use Data::Dumper; print Dumper [evalexp('21, 35, 42-45, 19')]; sub evalexp { my $str = shift; $str =~ s/\s//g; $str =~ s/-/../g; return eval $str; } #### push @expanded, $piece; #### push @expanded, int $piece;