将字符串拆分为数组会导致空数组

  • 本文关键字:数组 拆分 字符串 perl
  • 更新时间 :
  • 英文 :


对于此脚本,用户可以以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,在块外看不到。

最新更新