У меня проблема с га sh га sh. Я хочу создать ха sh га sh из foreach l oop. Я надеюсь, что смогу использовать значения ha sh of ha sh вне foreach l oop. Тем не менее, кажется, что ha sh of ha sh выглядит хорошо внутри foreach l oop, но не снаружи. Мои коды такие, как показано ниже.
my(%pother,%pget);
foreach $stn (@stns){
if (($stn eq 'A')||($stn eq 'B')) {
&getSomething($stn,\%pother); #getSomething is a subroutine and it outputs a hash
}
$pget{$stn} = \%pother; # I would like to create a hash of hash
print map { "$_ => $pget{$stn}{$_}\n" } keys %{$pget{$stn}}; # My 1st print result, which looks good
}
print map { "$_ => $pget{'A'}{$_}\n" } keys %{$pget{'A'}}; # My 2nd print result, which is same as my 3rd one
print map { "$_ => $pget{'B'}{$_}\n" } keys %{$pget{'B'}}; # My 3rd print result, which is same as my 2nd one
Ха sh% pother что-то вроде этого. Вывод% pother будет меняться в зависимости от $ stn
%pother = (
'20200406' => 82,
'20200405' => 99,
);
Я хочу создать га sh га sh, например:
$pget = {
'A' => {
'20200406' => 82,
'20200405' => 99,
},
'B' => {
'20200406' => 97,
'20200405' => 67,
}
};
Однако, что Я получил, как показано ниже:
$pget = {
'A' => {
'20200406' => 97,
'20200405' => 67,
},
'B' => {
'20200406' => 97,
'20200405' => 67,
}
};
Я не знаю, почему «А» и «В» стали такими же, когда ха sh га sh находится за пределами foreach l oop.
Спасибо!