Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在perl脚本中丢失一些值_Perl - Fatal编程技术网

在perl脚本中丢失一些值

在perl脚本中丢失一些值,perl,Perl,我有几个散列。下面有价值 $data->{reports}->{$port}->{tb}->{tb}); $data->{reports}->{$port}->{tb}->{change}); $data->{reports}->{$port}->{tb_pbd}->{tb_pbd}); 这些数值是: $VAR1 = { '4|EXPENSES|Net Income' => '8658617.

我有几个散列。下面有价值

$data->{reports}->{$port}->{tb}->{tb});   
$data->{reports}->{$port}->{tb}->{change});   
$data->{reports}->{$port}->{tb_pbd}->{tb_pbd});   
这些数值是:

$VAR1 = {   
'4|EXPENSES|Net Income' => '8658617.49'   
};   
$VAR1 = {   
'4|EXPENSES|Net Income' => '8728605.17'   
};   
$VAR1 = {
'4|EXPENSES|Net Income' => '-69987.68'   
};   
单独变量具有以下值:

$keyee       
value = 1|ASSETS|11240-000  
但是,当我将此值放入所有哈希时,例如:

$data->{reports}->{$port}->{tb}->{tb}->{$keyee}       

它变成了未定义的。知道为什么和如何进行治疗吗?

哈希键只能包含一个值。要存储与单个键关联的多个值,需要使用数组哈希

代码示例:

my %myhash;
$myhash{'tb'}="val1";
$myhash{'tb'} ="vale2";
在上面的示例中,tb键只有一个值

现在,如果要获取与tb键关联的两个值,请使用数组哈希。 代码示例

push(@{$myhash},"val1");
push(@{$myhash},"val2");
希望以上理念能对您有所帮助


有关数组散列的更多信息,请访问:

这很有趣,但我以前有另一个数据库的程序,它可以完美地工作。但新的——不是。在你的情况下,我如何检查它是否被定义?相同:定义的$data->{reports}->{$port}->{tb}->{tb}->{$keyee}?您可以检查密钥是否已经存在,是否使用exists$myhash{'tb'}但我不仅有tb。我有报告说他们是不同的,portportfolio-也不同,然后是tb等等。在这种情况下如何检查?当您插入与键关联的值时,只需使用该键是否已存在的条件进行检查。要检查多个值,请使用循环。如果已定义,我将执行下一步。。。。。。但是它们没有定义,如果我理解正确,我不知道如何使它们工作,$data->{reports}->{$port}->{tb}->{tb}是对一个元素的哈希的引用。该元素的键为4 |费用|净收入,因此,如果您尝试访问键为1 |资产| 11240-000的元素,您将获得undef,因为它不存在