簡體   English   中英

對Perl IPC :: Run感到困惑

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM