Могу ли я использовать Proc::Reliable на Windows?

Я использую 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 ответа

Решение

Это, вероятно, не подведет. -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.
$

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

perl.exe -e "print qq/hello world/"

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

Другие вопросы по тегам