C:\test>type junk1.pl #! perl -slw use strict; print "?$_?" for <>; C:\test>junk1 hello world ^Z ?hello world ? C:\test>junk1 junk1.pl ?#! perl -slw ? ?use strict; ? ?print "?$_?" for <>; ? #### C:\test>type junk1.pl|junk1 The process tried to write to a nonexistent pipe. #### C:\test>type junk1.pl | perl junk1.pl ?#! perl -slw ? ?use strict; ? ?print "?$_?" for <>; ? #### C:\test>pl2bat junk1.pl C:\test>type junk1.bat @rem = '--*-Perl-*-- @echo off if "%OS%" == "Windows_NT" goto WinNT perl -x -S "%0" %1 %2 %3 %4 %5 %6 %7 %8 %9 goto endofperl :WinNT perl -x -S %0 %* if NOT "%COMSPEC%" == "%SystemRoot%\system32\cmd.exe" goto endofperl if %errorlevel% == 9009 echo You do not have Perl in your PATH. if errorlevel 1 goto script_failed_so_exit_with_non_zero_val 2>nul goto endofperl @rem '; #! perl -slw #line 15 use strict; print "?$_?" for <>; __END__ :endofperl C:\test>junk1 ; ? C:\test>type junk1.pl | junk1 ?#! perl -slw ? ?use strict; ? ?print "?$_?" for <>; ?