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>