例如,我有一个perl数据文件,哈希结构:
第1行:$ VAR1 = {
第2行:k1 => V1,
第3行:k2 => {
第4行:k2.k1 => v2.v1
第5行:}
...
第n行:};
$ VAR1
现在通过读取哈希文件,它将转储哈希到内存中,并且顶部哈希引用是> >创建。
我的$ VAR1 = do $ hash_file;
我在perl代码中看到的是内存中的哈希值。如果给出$ VAR1-> {' k1'},我怎样才能获得"第2行"?
我没有看到有一种可靠的方法来使用哈希结构(或一般的perl数据结构)映射行号。
感谢。
答案 0 :(得分:1)
使用原生哈希值无法可靠地执行此操作。 Perl不保证哈希的排序。事实上,在Perl的某些版本中,每次运行程序时哈希顺序都会不同。也就是说,您可以为正在读取的文件编写自定义解析器,并以此方式获取行号。当然,所有这些听起来都像XY problem。也许你应该退后一步,解释你为什么要做这件事。