This is an example of the baggage Perl carries from its birth on UNIX. It is a reflection the "real" exit code on UNIX, and it even does that on Windows. If you really want to know the rational, then look at
. In particular
what an exit code looked like, so Perl just did what everyone expected. Nowadays few people know or care how the OS really operates. Sob.