Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > Передача параметров в скрипт


Автор: infarch 23.2.2011, 14:16
Проблемка у меня - переставлял систему (теперь стоит XP x64). После этого поставил актив перл 5.10. И вот теперь передача параметров в скрипт работает не коректно. Раньше я мог сделать так: myscript.pl some_data. А теперь приходится так: perl myscript.pl some_data. Конечно не сложно это запомнить, но хочется понять в чем дело. Может какую переменную окружения надо прописать еще... Подскажите плиз!

Автор: alezzz 23.2.2011, 14:29
Посмотрите документацию к AP, в Getting Started раздел Installation Guide.

Цитата

ftype PerlScript=perl.exe %1 %*
assoc .pl=PerlScript

Автор: infarch 23.2.2011, 16:06
Не помогло :(

Автор: alezzz 23.2.2011, 16:45
Код

C:\Perl\home>ftype | grep perl
Perl="C:\Perl\bin\perl.exe" "%1" %*

C:\Perl\home>assoc | grep Perl
.pl=Perl
.pm=PerlModule

у меня так, но Win XP x86. Дома Win 7 x64, вечером попробую там запустить.

Автор: alezzz 23.2.2011, 18:52
на семерке х64 тоже самое

Автор: infarch 24.2.2011, 11:55
У меня вроде тоже все правильно, хотя название несколько отличается:
.pl=PerlScript
PerlScript=C:\mod-perl\Perl\bin\perl.exe %1 %*

Но вот не работает и все тут... Пробовал поменять perlscript на perl - аналогично. Я еще один опыт сделал - добавил фальшивый тип:
.pllll=PerlFake
PerlFake=perl.exe %1 %*

Оный фейк не запускается вообще. Если его кликнуть, система предлагает выбрать программу для открытия. После выбра Perl command line interpreter поведение в точности тоже самое - запуск просто скрипта с аргументом ведет к тому что аргумент не виден, приходится еще указывать интерпретатор.

Загадка блин :(


Автор: alezzz 24.2.2011, 12:19
Цитата

C:\Perl\home>ftype | grep Perl
Perl="C:\Perl\bin\perl.exe" "%1" %*
PerlFalse=c:\perl\bin\perl.exe %1 %*
PerlFalse2=perl.exe %1 %*
PerlScriptFile=C:\WINDOWS\System32\WScript.exe "%1" %*

C:\Perl\home>assoc | grep Perl
.pl=Perl
.plf=PerlFalse
.plf2=PerlFalse2
.pm=PerlModule

C:\Perl\home>

.plf запускается, .plf2 просит указать программу (т.е. не запускается). 

На офсайте есть 5.12 для х86 и х64, попробуйте переставить перл.

Автор: infarch 24.2.2011, 13:33
Но перл ведь работает! Если систему ткнуть носом в последовательность запуска, то все работает. И не понятно из вашего примера, почему plf запускается, а .plf2 нет. Может дело в том что хендлер для PerlFalse2 указан без абсолютного пути? Я попробовал создать обработчик с абсолютным путем, он сработал:

assoc .plff=PerlFalseScript
ftype PerlFalseScript=c:\mod-perl\perl\bin\perl.exe %1 %*

Тип plff запускается по клику и нормально ловит аргументы. Отлично, едем дальше. Редактирую тип pl:

assoc .pl=Perl
ftype Perl=c:\mod-perl\perl\bin\perl.exe %1 %*

Все тоже самое, кроме имени в ассоциации, и не работает! Аргументов нет по прежнему.  Ну и при чем тут перл? Явно система глючит. Может где еще есть хитрые асоциации, не знаю...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)