использовать Win32 :: Process;Мои выходные отчеты «Система не может найти указанный путь» - PullRequest
0 голосов
/ 30 июня 2010

Я переучиваю Perl после 10 лет неиспользования.

Я скопировал и вставил два приведенных ниже сценария из одного из ответов на аналогичный вопрос на этом сайте.Я проверил и дважды проверил path и попробовал несколько отклонений, но я все еще получаю тот же ответ -

The system cannot find the path specified

Любая помощь будет принята с благодарностью!

Это действительно доstarting child process и выходы с сообщением об ошибке The system cannot find the path specified.

Ниже приведена вырезка и вставка оригинальных двух сценариев

parent.pl:

#!/usr/bin/perl


use warnings;

use Win32;
use Win32::Process;

$| = 1;

my $p;

print "Starting child process ... \n";

Win32::Process::Create(
    $p,
    'c:\Perl\perl.exe',
    'perl hello.pl',
    1,
    NORMAL_PRIORITY_CLASS,
    '.',
) or die Win32::FormatMessage( Win32::GetLastError() );

print "Waiting three seconds before killing 'hello.pl'\n";

for (1 .. 3) {
    print;
    sleep 1;
}
$p->Kill(0)
    or die "Cannot kill '$p'";

hello.pl

#!/usr/bin/perl

$| = 1;

print "Hello World\n";
print "Sleeping 1000 seconds\n";

for (1 .. 1000) {
    sleep 1;
    print '.';
}

Ответы [ 2 ]

2 голосов
/ 30 июня 2010

Вам необходимо избежать обратной косой черты на вашем пути или использовать прямую косую черту.

Посмотрите на этот несколько связанный пост .

0 голосов
/ 03 июля 2010

(Этот ответ будет отредактирован при проверке условий)

  1. проверка на наличие c:\Perl directory - он может быть чувствительным к регистру (например, C:\ не c:\)
  2. убедитесь, что в этом каталоге указан perl.exe, фактический путь может быть C:\Perl\bin\perl.exe
  3. 'perl hello.pl' может потребоваться полный путь perl (например, 'C:\Perl\perl.exe hello.pl')

Примечание:

  1. Поскольку вы используете одинарные кавычки ('), вам не нужно экранировать обратную косую черту (\)
  2. При обработке в окнах вы можете изменить: #!/usr/bin/perl на указанный путь к Windows #!C:\Perl\perl.exe, однако я не думаю, что это действительно имеет значение для окон, это просто поможет вам узнать, где находится исполняемый файл для таких времен.
...