我原來的腳本如下:爲什麼不在Perl的污染模式下打開管道?
my $cmd = "dir";
open (H, "$cmd |");
my @result = <H>;
close (H);
print STDERR @result,"\n";
這個腳本工作正常。如果我在腳本中添加以下行,它將無法工作:
$ENV{"LD_LIBRARY_PATH"} = "/opt/VRTSsfmh/lib";
$ENV{PATH}="/usr/bin:/bin:/sbin:/usr/sbin";
delete @ENV{'IFS', 'CDPATH', 'ENV', 'BASH_ENV'};
Perl在調用管道打開時會使用什麼?
加入以下代碼的固定問題:
if ($^O =~ /Win32/i)
{
$ENV{'SystemRoot'} =~ /([A-Z]:(\\[A-Za-z0-9_]+)+)/;
my $system32_dir = $1."\\system32";
$ENV{'PATH'} = $system32_dir;
}
當說什麼「失敗」時,通常會幫助描述失敗的更多細節。例如,它是否會產生錯誤消息,如果是,那麼該消息是什麼? – pjf 2009-06-08 13:39:42