Finally, one line, and no experimental features!
sub double_it { return join ' ', $_[0] =~ /\w(?=\w(?<=(..)))/g; }
Alternate versions:
sub double_it { local ($_) = @_; (my @chars1) = (my @chars2) = split //; pop @chars1; shift @chars2; return join ' ', grep { !/\s/ } map { $chars1[$_] . $chars2[$_] } 0..$#chars1; }
sub double_it { local ($_) = @_; my @list = /(\w)(?=(\w))/g; my @pairs; push(@pairs, shift(@list).shift(@list)) while @list; return join(' ', @pairs); }
sub double_it { our @pairs; local *pairs; () = $_[0] =~ /(\w)(?=(\w))(?{ push(@pairs, "$1$2"); })/g; return join(' ', @pairs); }
In reply to Re: Splitting a string
by ikegami
in thread Splitting a string
by lampros21_7
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |