http://qs321.pair.com?node_id=11105991


in reply to Handling MSWin Script Output

I think it has to do with how .pl files are handled by Windows. This may come down to `assoc` and `ftype` or maybe in the registry. For me (from a cmd.exe prompt, this won't work in PowerShell):

VinsWorldcom@:C:\Users\VinsWorldcom\tmp> assoc | find /i "perl" .pl=Perl_program_file VinsWorldcom@:C:\Users\VinsWorldcom\tmp> ftype | find /i "Perl_program +_file"

Notice, the `ftype` command (for me) returns nothing, but if I look in my registry at HKEY_CLASSES_ROOT\Perl_program_file, I have some subkeys:

HKEY_CLASSES_ROOT Perl_program_file shell Execute Perl Program command = [REG_SZ] C:\Strawberry\perl\bin\perl.exe "%1" %*

Now when I run your commands, with ./ or .\ and with or without `perl` (and also with or without the .pl extension as I have my PATHEXT environment variable to include .pl) from PowerShell and / or CMD.exe, in all the combinations of the above criteria that make sense, I get the same output:

PowerShell

PS VinsWorldcom ~\tmp > .\test.pl Platform: MSWin32 Executable: C:\Strawberry\perl\bin\perl.exe Enter to close window: PS VinsWorldcom ~\tmp > ./test.pl Platform: MSWin32 Executable: C:\Strawberry\perl\bin\perl.exe Enter to close window: PS VinsWorldcom ~\tmp > perl .\test.pl Platform: MSWin32 Executable: C:\Strawberry\perl\bin\perl.exe Enter to close window: PS VinsWorldcom ~\tmp > perl ./test.pl Platform: MSWin32 Executable: C:\Strawberry\perl\bin\perl.exe Enter to close window: PS VinsWorldcom ~\tmp > ./test Platform: MSWin32 Executable: C:\Strawberry\perl\bin\perl.exe Enter to close window: PS VinsWorldcom ~\tmp > .\test Platform: MSWin32 Executable: C:\Strawberry\perl\bin\perl.exe Enter to close window: PS VinsWorldcom ~\tmp >

CMD (note: CMD.exe won't interpret / as \ like PowerShell does)

VinsWorldcom@:C:\Users\VinsWorldcom\tmp> .\test.pl Platform: MSWin32 Executable: C:\Strawberry\perl\bin\perl.exe Enter to close window: VinsWorldcom@:C:\Users\VinsWorldcom\tmp> perl .\test.pl Platform: MSWin32 Executable: C:\Strawberry\perl\bin\perl.exe Enter to close window: VinsWorldcom@:C:\Users\VinsWorldcom\tmp> .\test Platform: MSWin32 Executable: C:\Strawberry\perl\bin\perl.exe Enter to close window: VinsWorldcom@:C:\Users\VinsWorldcom\tmp>