Probably won't be a popular comment, but you asked for any comments. Mine: don't use 'say' (or 'switch'). There, I sayed it. (How to justify it... Time saved? You spent some amount of time puzzling over it, then posted to perlmonks asking how to do it. A lot of time there. Or maybe it's clearer? 'say', a new feature, works now because....somehow it's been enabled. Well, if you set some environment variable or whatever, which won't work elsewhere. Seems not really so clear. Easier to wait a few years before using new syntax of dubious value, IMHO. Just because UNIVERSAL::can($you, 'do_something') doesn't mean UNIVERSAL::should($you, 'do_something') :))
Although I don't agree with you, 5.10 has been out for long enough to be pretty much everywhere, in this case it's fairly easy to emulate say using -l: