對于此腳本,用戶可以輸入他們想要用作命令列引數 ( $opt_proj) 的 csv 格式的專案,如下所示:Proj1,Proj2,Proj3
我想將它們分開以單獨獲得每個,但我不確定為什么該split命令不會用專案填充我的陣列。
代碼:
my @projects;
if ( defined $opt_proj ) {
print $opt_proj;
my @projects=split /,/,$opt_proj;
}
print "@projects\n";
exit;
$opt_proj包含資料并列印出來Proj1,Proj2,Proj3。但是,@projects似乎是空的。我也試過@projects用foreach回圈和相同的結果列印內容。
uj5u.com熱心網友回復:
問題是范圍。只需洗掉塊my內的關鍵字if:
use warnings;
use strict;
my $opt_proj = 'Proj1,Proj2,Proj3';
my @projects;
if ( defined $opt_proj ) {
print $opt_proj, "\n";
@projects=split /,/,$opt_proj;
}
print "@projects\n";
exit;
這列印:
Proj1,Proj2,Proj3
Proj1 Proj2 Proj3
您的代碼@projects在if塊內創建了一個在塊外無法看到的新變數。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/325974.html
標籤:perl
上一篇:檔案決議中perl回圈列印的問題
下一篇:如何將perl程式拆分為多個檔案
