Как можно передать аргументы командной строки через сопоставление файлов в Vista 64?
Я недавно создал ПК с 64-битной Vista Ultimate. Я заметил, что некоторые из перенесенных мной сценариев Perl не сработали из-за того, что аргументы командной строки не были переданы. В качестве простого теста я написал следующее (foo.pl):
#!/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
Запуск "foo.pl 1 2 3" нежелательно дал:
0 arguments read
C:\strawberry\perl\bin\perl.exe
Запуск "perl foo.pl 1 2 3" ожидаемо дал:
3 arguments read
C:\strawberry\perl\bin\perl.exe
На моем старом ПК с Windows XP оба вызова вернули 3 аргумента. Я задокументировал здесь больше моих споров ( win32.perl.org wiki talk ), но мне еще предстоит найти решение, которое работает.
Я также пробовал ActivePerl-5.10.0.1004-MSWin32-x64-287188.msi безрезультатно.
Любая помощь будет принята с благодарностью. Это сводит меня с ума.