my $str = 'somewords'; local ($\,$,) = ("\n") x 2; print map {substr $str, 0, $_} 1..length($str); # or print map {$str =~ /(.{$_})/} 1..length($str); # or { my $mem; print map {$mem .= $_} split //, $str; } # etc. (Golf?)