in reply to how to split input data ?

Don't we all get through this one every so often? exploring some other possibilities ..
perl -le 'print $1 while ($ARGV[0] =~ s/(.{1,2})(.*)/$2/g);' "12345678 +9" perl -le '$c=-2; print while $_ = substr $ARGV[0], $c+=2, 2;' "1234567 +89" # or perl -le 'while ($_ = substr $ARGV[0], $c, 2) { print; $c+=2 };' "1234 +56789" perl -le '@_=reverse split//, $ARGV[0]; while (@_) {print join"", (pop +@_, pop@_);}' "123456789" perl -le '@_=split//, $ARGV[0]; while (@_) {print join"", (shift@_, sh +ift@_);}' "123456789" perl -le '@_=split//, $ARGV[0]; while (@_) {print join "", splice @_, +0, 2}' "123456789" perl -le '@_ = split //,$ARGV[0]; splice @_, $_, 2, $_[$_].$_[$_+1] fo +r 0..$#_/2; print "@_"' "123456789" # some alternatives to ones already posted.. perl -le 'print for grep /./, split /(..)/, $ARGV[0]' "123456789" perl -le 'print for unpack "(Z2)*", $ARGV[0]' "123456789" # probably the fastest echo 123456789 | perl -nle 'print for /(..?)/g'