- or download this
57 chars:
$t=$_;@s=(map({substr$t,0,$_}1..$s-1),/(?=(.{1,$s}))/gs);
...
55 chars:
@s=/./gs;@s=map{join'',@s[$_>0&&$_..$_+$s]}- --$s..$#s;
- or download this
52 chars:
for$i(1..$s){push@s,/(?(?{$i<$s})^)(?=(.{1,$i}))/sg}
- or download this
55 chars, string in $t:
@s=map{eval'$t=~/(?=(.{1,$_}))/s'.($_<$s?'':"g")}1..$s;