我正在阅读一个文本文件,里面有多行。我被分配了一个任务来使用哈希打印行。
use strict;
use warnings;
my %hash = ();
my $key;
open (my $fh , "<","test.txt") or die "can not open the file $!\n";
while (my $line =<$fh>)
{
chomp ($line);
my($key, $number) = split("\n", $line)
$hash{$key} = [ $count, $number ];
}
以下是我尝试过的内容:
代码:
id date name orderID
========================
1 1502 John ?
2 1502 Jane ?
我无法理解哈希中的关键是什么。有人可以帮我解决这个问题。
答案 0 :(得分:3)
你有
while (my $line =<$fh>)
通过$fh
读取单个记录。 Perl中的默认输入记录分隔符是"\n"
,这意味着您将逐行读取文件。根据定义,单行具有单行终止符。
chomp ($line);
然后从"\n"
中的字符串中删除此单$line
。
因此,
my($key, $number) = split("\n", $line);
将$line
复制到$key
,并$number
未定义,因为"\n"
中没有$line
。即使你没有chomp
编辑该行,$number
也不会包含任何有用的内容,因为根据定义,行终止符将位于行的末尾,并且在它之后将没有任何内容它标志着该行的结束。
如果文件包含以下内容:
key1 value1 key2 value2
然后你可以一次阅读这些。