in reply to Porting Code from windows to *nix help

The stuff that usually bites you in the asterisk – and when it does bite, it bites hard – is stupid-but-important stuff, namely, “forward vs. backward slashes.”   But things like unicode and even blank spaces can be a real problem, too.   If I know that code needs to be portable between platforms, I push the necessary manipulation duties off to various CPAN modules, generally in the File:: namespace, which are designed to be operating system aware.   Some of these take the approach of letting you “always use one kind of slash, and if need be I’ll automagically substitute the other.”   Others are even more abstracted, letting you provide directory-paths as an arrayref and so on.   But in any case, somebody else is supposed to have already pulled their hair out over the issue, and to have built self-tests to prove that you won’t have to pull-out yours.   (A rapidly-increasingly urgent consideration, at least for me:   I can’t spare the stuff anymore.)

The catch-22 is that you usually don’t start out this way.   The need to port your code usually comes up after you’ve written it.   This obliges you, then, to a more or less annoying (as the case may be) amount of rework.