对于此脚本,用户可以以csv格式输入他们想要用作命令行参数($opt_proj
)的项目,如下所示:Proj1,Proj2,Proj3
我想将它们拆分为单独的,但我不确定为什么split
命令不会用项目填充我的数组。
代码:
my @projects;
if ( defined $opt_proj ) {
print $opt_proj;
my @projects=split /,/,$opt_proj;
}
print "@projectsn";
exit;
$opt_proj
包含数据并打印出Proj1,Proj2,Proj3
。但是,@projects
似乎是空的。我还尝试过用foreach
循环打印@projects
的内容,结果相同。
问题在于范围。只需删除if
块中的my
关键字:
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 "@projectsn";
exit;
此打印:
Proj1,Proj2,Proj3
Proj1 Proj2 Proj3
您的代码在if
块内创建了一个新的变量@projects
,在块外看不到。