So I think I had already implemented what Bob suggested. Specifically I'm doing:
Unicode::Collate->new( variable => 'shifted', entry => "0020 ; [.0209.0020.0002] # SPACE
" )
Which is to say to use the use the UCS 10 collation, using punctuation and whitespace as the last level tiebreaker, but to treat a normal space as a standard character and consider it at level 1 instead. In theory I should add some of the other whitespace characters, like maybe full-width space, but I really doubt that's going to be an issue.
From the standards document:[table]
Unicode::Collate->new( variable => 'shifted', entry => "0020 ; [.0209.0020.0002] # SPACE
" )
Which is to say to use the use the UCS 10 collation, using punctuation and whitespace as the last level tiebreaker, but to treat a normal space as a standard character and consider it at level 1 instead. In theory I should add some of the other whitespace characters, like maybe full-width space, but I really doubt that's going to be an issue.
From the standards document:[table]