Heck, there are even cross-platform compatibility issues if you stick to ASCII. Not all the world is ASCII.
Enough of the computer world supports ASCII that it's
reasonable to use any printable character from the
ASCII set. Platforms that don't use ASCII natively
should have translation utilities for it by now,
surely. Now, if you write code that changes case by
adding and subtracting or similar schenanighans, then
of course that's another matter, but just using a
printable ASCII character is a fairly portable thing.
(By "printable", I mean from decimal 32 up through
decimal 126. The control characters are more likely
causes of trouble.)
;$;=sub{$/};@;=map{my($a,$b)=($_,$;);$;=sub{$a.$b->()}}
split//,".rekcah lreP rehtona tsuJ";$\=$;[-1]->();print