s/^(.)(.)(.*)/$2$1$3/s; # 12345 -> 21345 s/^(.)(.)(.)(.*)/$1$3$2$4/s; # 12345 -> 13245 s/^(..)(.)(.)(.*)/$1$3$2$4/s; # 12345 -> 12435 s/^(...)(.)(.)(.*)/$1$3$2$4/s; # 12345 -> 12354 #### s/^()(.)(.)(.*)/$1$3$2$4/s; #### my $dots = ".."; s/^($dots)(.)(.)(.*)/$1$3$2$4/s; # 12345 -> 12435 #### my $str = "12345"; my $dots = ""; while (length($dots) <= length($str)-2) { $_ = $str; s/^($dots)(.)(.)(.*)/$1$3$2$4/s; print; $dots .= "."; }