You could always use the source of Term::Readkey as a reference to build what you want in whatever way does meet your criteria - assuming that's possible of course ;)
I'm sure it does, since Term::ReadKey (now that I've read more about it) seems to only use modules in the core Perl distribution and actually seems to do what I want. I just need to get over the fact that it's not nearly as easy to accomplish as it seems like it should be. I guess I'm just mystified at the fact that Perl can handle automatic translation of newline characters and (back)slashes between systems invisibly, but can't do the same for terminal interactions like this.