#! perl -slw use strict; sub swab { substr( $_[0], $_[1], 1, substr( $_[0], $_[2], 1, substr( $_[0], $_[1], 1 ) ) ); } my $s = 'AB'; swab( $s, 0, 1 ), print "'$s'" for 1 .. 10; __END__ P:\test>test 'BA' 'AB' 'BA' 'AB' 'BA' 'AB' 'BA' 'AB' 'BA' 'AB'