my $alpha = "elprxyz"; my $cipher = "zyxe"; my $normal = "perl"; my @array = translation_set( $alpha, $cipher, $normal ); foreach my $trans ( @array ) { $_ = $cipher; eval "tr/$alpha/$trans/"; #need to eval in order to #expand variables print $trans, ": ", $_,"\n"; } # Would expect (but not necessarily in this order:) # lxyzrep: perl # lxzyrep: perl # lyxzrep: perl # lyzxrep: perl # lzxyrep: perl # lzyzrep: perl