my $i = 0; use constant PCHR => split //, 'KQRBNP'; my %pchr = map { $_ => $i++ } PCHR; my $w1 = 'QRKPNB'; my $w2 = join '', sort { $pchr{$a} <=> $pchr{$b} } split //, $w1; print "$w1 -> $w2\n";