#!/usr/bin/perl use strict; use warnings; while(){ chomp; my $in = $_; my @pairs = split(/(.{2})/); $_ = reverse foreach @pairs; my $out = join('', @pairs); print "in: $in => out: $out\n"; } __DATA__ 12345678 1234 12 1234 123456 87654321 #### in: 12345678 => out: 21436587 in: 1234 => out: 2143 in: 12 => out: 21 in: 1234 => out: 2143 in: 123456 => out: 214365 in: 87654321 => out: 78563412