我在重新使用10年后重新学习Perl。
我在本网站的一个类似问题的答案之一上复制并粘贴了以下两个脚本。我检查并仔细检查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 '.';
}
答案 0 :(得分:2)
您需要转义路径中的反斜杠,或使用正斜杠。
答案 1 :(得分:0)
(此答案将在条件检查时进行编辑)
c:\Perl directory
- 可能区分大小写(例如C:\
而不是c:\
)perl.exe
,实际路径可能为C:\Perl\bin\perl.exe
'perl hello.pl'
可能需要是完全合格的perl路径(例如
'C:\Perl\perl.exe hello.pl'
)
旁注:
'
),因此您无需转义反斜杠(\
)#!/usr/bin/perl
到指定的
Windows路径#!C:\Perl\perl.exe
,
但是我不认为这真的很重要
在Windows上,它只是帮助您了解可执行文件的位置。