use strict; use warnings; my $str = q{}; sub sort_and_reformat { my $s = shift; return join " ", sort split m/,/, $s; } $str =~ s/"([^"]*)"/'"' . sort_and_reformat($1) . '"'/eg; print $str, $/;