[英]Confused about perl IPC::Run
我正在嘗試使用如下代碼:
run \@cmd, \$in, \$out, \$err;
如IPC::Run
。
當然,這會抱怨未定義的變量。
所以我嘗試一下:
my $in;
my $out;
my $err;
run \@cmd, \$in, \$out, \$err;
print $in "Hello World";
但是然后在print
線上,我遇到了未定義參考的問題。
我在這里做錯什么嗎? 如果是這樣,我需要修改什么?
IPC :: Run頁面上的示例代碼假設您已經在其他位置聲明並設置了這些變量/描述符,因此,一旦設置它們,為什么不再抱怨。
在無效的文件句柄中打印到$ in將引發該錯誤。 您只需要將文件句柄保留在print語句之外,或者打開要寫入的文件的文件句柄,然后將其傳遞給打印。
有關這些功能的更多信息,請參見打開並打印文檔頁面:
http://perldoc.perl.org/functions/open.html
http://perldoc.perl.org/functions/print.html
另外,我強烈建議您在Perl腳本中使用嚴格警告(如果沒有的話),因為它會為您帶來許多錯誤。
如LeoNerd所述,如果您沒有將@cmd數組設置為包含要運行的命令數組,則在該運行調用中實際上將不會執行任何操作。
如果您只是剛開始使用Perl並使用CPAN模塊,我強烈建議您也開始使用Data :: Dumper(在Perl核心中,無需安裝即可使用它,只需將use Dumper;
放進去use Dumper;
再加上其他使用說明)打印出變量,作為調試代碼的方式,以了解正在發生的情況。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.