By avoiding ‘use constant’, you are preventing unused code paths from being optimised away, creating a run-time speed hit. The most recent constant.pm release might not work in 5.6, but 5.6 already comes with its own constant.pm, which should work. Apart from that, I think the patch is fine.
Please add "use constant" back in per cpansprout's suggestion
Please add a CAN_UNICODE (or somesuch name) constant that is the check for $] >= 5.008003. The first is that I don't like that check just randomly scattered about. The second is that we may expand the can_unicode check to include other criteria. Self-documenting code, where possible, is ideal.
By avoiding ‘use constant’, you are preventing unused code paths from being optimised away, creating a run-time speed hit. The most recent constant.pm release might not work in 5.6, but 5.6 already comes with its own constant.pm, which should work. Apart from that, I think the patch is fine.