http://www.perlmonks.org?node_id=998428


in reply to Re^7: Win7, ASSOCiation , and @ARGV
in thread Win7, ASSOCiation , and @ARGV

I've had the problem that if I executed on Win7:
perl myprog.pl a b c
the program got the parameters (in @ARGV) correctly, but if I executed:
myprog.pl a b c
the program would NOT receive the parameters. I searched the web for a solution and soon found that it was no ActiveState perl problem but more likely a filetype association problem in Windows (Win7). However all solutions changing the
assoc .pl=Perl
and the
ftype Perl="C:\Perl\bin\perl.exe" "%1" %*
or changing stuff in the registry still did not solve the puzzle for me. I did notice that the assoc .pl was not used somehow because if I added assoc .plx=Perl and renamed my program to myprog.plx
myprog.plx a b c
worked perfectly ! So then I read this problem on the Microsoft forum were the Win7 "feature" Default Programs was mentioned, I found the solution to my problem:

Open Default Programs by clicking the Start button , and then click "Default Programs".

Select "Associate a file type or protocol with a program" and select ".pl" and click on "Change program". There was already a Perl Command Line Interpreter specified as Recommended Programs but instead I clicked on Browse and selected the Perl.exe myself. After closing the "Associate a file type ..." screen,

myprog.pl a b c
executed like a charm, all parameters were correctly retrieved by my program. Hope that helps ...