例如,我有一个perl数据文件,散列结构:
第1行:$VAR1 ={ 第2行: k1 => v1 第3行: k2 => { 第4行: k2.k1=>v2.v1 第5行:} ..。 N行:}; $VAR1
现在,通过读取散列文件,它将被转储到内存中,并且顶部的哈希引用是>>创建的。
我的$VAR1 = do $hash_file;
我在perl代码中看到的是内存中的散列。如果给$VAR1 1->{‘k1’},我如何得到“第2行”?
我认为没有一种可靠的方法可以用散列结构(或一般perl数据结构)映射行号。
谢谢。
发布于 2014-04-10 19:15:55
使用本机散列无法可靠地完成此操作。Perl不能保证散列的顺序。实际上,在Perl的某些版本中,每次运行程序时,哈希排序都会有所不同。也就是说,您可以为正在读取的文件编写自定义解析器,并以这种方式获取行号。当然,所有这些听起来都像是一个XY problem。也许你应该退后一步,解释一下你为什么要做这件事。
https://stackoverflow.com/questions/22996772
复制相似问题