#! perl -slw use strict; sub swab1{ substr( $_[0], $_[1], 1 ) ^= substr( $_[0], $_[2], 1 ) ^= substr( $_[0], $_[1], 1 ) ^= substr( $_[0], $_[2], 1 ) } sub swab2{ substr( $_[0], $_[1], 1 ) ^= substr( $_[0], $_[2], 1 ) ^= substr( $_[0], $_[1], 1 ) ^= substr( $_[0], $_[2], 1 ) } my $s ='AB'; swab1( $s, 0, 1 ); print "'$s'"; swab2( $s, 0, 1 ); print "'$s'"; my $u = 'AB'; swab1( $u, 0, 1 ); print "'$u'"; swab2( $u, 0, 1 ); print "'$u'"; __END__ P:\test>junk 'BA' 'AB' ' A' ' '