Могу ли я использовать Proc :: Reliable на Windows? - PullRequest
0 голосов
/ 07 сентября 2010

Я использую ActivePerl на Win 7 и хочу использовать модуль Proc :: Reliable CPAN.Он скачал и установил правильно, но когда я попытался запустить следующий код, он потерпел неудачу на run

my $newProc = Proc::Reliable->new()
$newProc->run("perl.exe -e print 'hello world'");

Я попробовал пару вещей, таких как тестирование status и попытка получить вывод, нобез удачиНасколько я могу судить, программа тихо умирает на run.

Для справки perl.exe находится в моей переменной PATH, и я вызываю это из командной строки как: perl.exe test.pl

Ответы [ 3 ]

4 голосов
/ 07 сентября 2010

Вероятно, это не сбой. -e print 'hello world' говорит Perl выполнить код print с @ARGV, установленным на hello world (или, возможно, ("'hello","world'"), я забыл, как Windows cmd цитирует ''). Это печатает содержимое $ _ (то есть undef) в STDOUT.

Всегда используйте предупреждения. Даже на однострочниках. Возможно, особенно на однострочниках. Сравните:

$ perl -e print 'hello world'
$

и

$ perl -we print 'hello world'
Use of uninitialized value $_ in print at -e line 1.
$
3 голосов
/ 07 сентября 2010

Цитирование немного отличается в «оболочке» Windows.Чтобы интерпретировать вашу мини-программу как один аргумент, попробуйте что-то вроде

perl.exe -e "print qq/hello world/"
2 голосов
/ 24 февраля 2012

Я связался с автором модуля Proc::Reliable, и он подтвердил, что модуль не работает в Windows.

...