If you use
Term::ReadKey then it should work everywhere you can find that module. Its
test matrix shows the latest version works on Linux, Win32, Cygwin, Darwin (the basis of OS X, so probably there too), Solaris, and several BSD flavors (Dragonfly, OpenBSD, NetBSD, FreeBSD) under 5.10.0, which means it should be good wherever you need it.