UNIX terminals can run in canonical ('cooked') or non-canonical ('raw') mode. The difference is that in canonical mode certain characters are converted, for example Ctrl+c generates (by default) a SIGINT and <Return> gets translated to a new-line (crtonl).
in reply to Ascii value is different
The documentation for Term::Screen clearly states that it runs in raw mode, which means there is no conversion. ASCII character 13 is a CR, the code for the return key, in canonical mode this gets translated to 10, which is LF (a line feed).
Term::ReadKey has a ReadMode function which you could use to get consistent results.
See also, on the shell command-line, stty -a