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