in reply to Re^3: Different meanings of $0 under the same operating system
in thread Different meanings of $0 under the same operating system
That many *NIX filter commands take '-' to be STDIN is an application convention. It's not something either the OS, or any of the standard libraries treat as special. In perl < foo, - isn't passed as an argument to any function of the exec family. It's not UNIX that is 'locating' the script.