【发布时间】:2011-12-19 02:11:46
【问题描述】:
我正在尝试使用下载的 Perl 代码,其中包括用于逐行读取输入文件的以下部分。
但是,我不太明白它是如何工作的
$row[-1]代表什么?可以从-1索引行吗?$result{$id}{$group[0]}=$group[1];是如何工作的?是为结果构建二维数组吗?$df{$group[0]}++;有什么作用?和 C++ 中的++一样吗?
my $result =();
my $df = ();
while (<FILE>)
{
my @row = split;
my $id = $row[-1];
for my $i(0 .. $#row - 2)
{
my @group = split(/\:/, $row[$i]);
$result{$id}{$group[0]}=$group[1];
$df{$group[0]}++;
}
}
【问题讨论】:
-
您下载的代码是由不太了解 Perl 的人编写的。试图将一个空列表分配给一个标量是很愚蠢的。冒号不是正则表达式中的元数据,也不需要转义。
-
@tadmc : 至少他们已经对变量进行了词法作用域:)
标签: perl