erickn@cosmora01d:/home/erickn/mi> cat x my $asdf = 'ddddd ee asdfg'; my $new = join('_',(sort {length($b) <=> length($a) || $a cmp $b} split /\s/, $asdf)); print "$new\n"; my $asdf = 'aaa bbbb c'; my $new = join('_',(sort {length($b) <=> length($a) || $a cmp $b} split /\s/, $asdf)); print "$new\n"; erickn@cosmora01d:/home/erickn/mi> perl x asdfg_ddddd_ee bbbb_aaa_c