foreach ( sort gs::long_strings_first(), @$raw_hash_keys_ar ) { #do_stuff; } package gs; sub long_strings_first { return ( 0 ) unless defined $b; length $b <=> length $a || lc $b cmp lc $a }