title: How can I pass command-line arguments via file association in Vista 64?
body: <p>How can one pass command line arguments via file association in Vista 64?</p>
  
  <p>I recently built a PC running Vista Ultimate 64-bit.  I noticed several of the Perl scripts I transferred failed due to command-line arguments not being passed.  As a simple test, I wrote the following (foo.pl):</p>
  
  <pre><code>#!/usr/bin/perl -w
  use strict;
  my $num_args = $#ARGV + 1;
  print "${num_args} arguments read\n";
  print "$^X\n" # to see what was being used
  </code></pre>
  
  <p>Running "foo.pl 1 2 3" undesirably yielded:</p>
  
  <pre><code>0 arguments read
  C:\strawberry\perl\bin\perl.exe
  </code></pre>
  
  <p>Running "perl foo.pl 1 2 3" expectedly yielded:</p>
  
  <pre><code>3 arguments read
  C:\strawberry\perl\bin\perl.exe
  </code></pre>
  
  <p>On my old Windows XP PC, both invocations returned 3 arguments.  I documented more of my sleuthing here (<a href="http://win32.perl.org/wiki/index.php?title=Talk:Main_Page#fun_with_file_associations" rel="nofollow noreferrer">win32.perl.org wiki talk</a>), but I've yet to find a solution that works.</p>
  
  <p>I've also tried ActivePerl-5.10.0.1004-MSWin32-x64-287188.msi to no avail.</p>
  
  <p>Any help would be appreciated.  This is driving me batty.</p>