【发布时间】:2020-01-19 05:31:59
【问题描述】:
我是 Perl 的新手。我的要求是在 for 循环内填充一个数组并在循环外使用变量。
foreach my $fp (glob("c/temp.txt"))
{
open my $fh, "<", $fp or die "can't read open '$fp': $OS_ERROR";
while (my $line = <$fh>)
{
chomp($line);
my @array= split /[,\(\)]/, $line;
}
close $fh or die "can't read close '$fp': $OS_ERROR";
}
我需要在 foreach 循环之外使用值 @array。请提出一种方法。
【问题讨论】:
-
(1) 您显示的
glob评估为一个 项,即c:/temp.txt字符串。也许你这样做是为了简单,但为什么不做一些更现实的事情,比如c:/*.txt(2) 当open失败时,通常会查看$!变量。如果$OS_ERROR涉及某些 cookie 重载等(并且它包含$!),那就这样吧,否则你也应该打印$!