my @bytes = split (/([0-9A-F]{2})/, "0102030405060A0BC"); my $new; foreach (@bytes) { next if $_ eq ''; $new .= (length($_)==2) ? reverse($_) : 'F' . $_; } print $new, "\n";