#! perl -slw use strict; sub reorder { my $string = shift; return join ',', sort{ $a cmp $b } split ',', $string; };; my $string1 = '~cake,pastry'; my $string2 = 'pastry,~cake'; my $string3 = 'cake,pastry'; print "$_->[ 0 ] eq $_->[ 1 ]", reorder( $_->[ 0 ] ) eq reorder( $_->[ 1 ] ) ? ' match ' : ' dont match' for [ $string1, $string2 ], [ $string1, $string3 ], [ $string2, $string3 ]; __END__ [ 8:16:14.39] P:\test>junk2 ~cake,pastry eq pastry,~cake match ~cake,pastry eq cake,pastry dont match pastry,~cake eq cake,pastry dont match