use strict; use warnings; my $seq='ACGGGAGGACGGGAAAATTACTACGGCATTAGC'; my $rev=''; my $n = length $seq; while( $n-- ){ $rev .= $_ for map chr($_&2?$_^4:$_^21), ord substr $seq, $n, 1 } print "$seq\n$rev\n";