在
$values->{area}{$areacode}{person}{$name} = 1;
分配給...{$name}
數1
。在接下來的步驟,
$values->{"area"}{$areacode}{person}{$name}{id}= $hashid;
#-----------------------------------^^^^^^^ <--hashref
想用這個號碼1
作爲hashref
- 什麼是ofcourse錯誤。
用途:
use strict;
use warnings;
您也可以使用Data::Dumper
轉儲你的數據結構,所以下面:
#!/usr/bin/env perl
use strict;
use warnings;
use Data::Dumper;
my %hash;
execute(\%hash);
print Dumper \%hash;
sub execute {
my ($values) = @_;
my $areacode = "982222";
my $name = "john";
$values->{area}{$areacode}{person}{$name}{num} = 1;
# ----------------------------------------^^^ some key
my $hashid = "123456";
$values->{area}{$areacode}{person}{$name}{id} = $hashid;
#adding another
$values->{area}{$areacode}{person}{joe}{num} = 2;
$values->{area}{$areacode}{person}{joe}{id} = $hashid;
$values->{area}{'0000000'}{person}{susan}{num} = 1;
$values->{area}{'0000000'}{person}{susan}{id} = 10000;
}
注引0000000
- 不帶引號將它解釋爲數字0
。
打印:
$VAR1 = {
'area' => {
'0000000' => {
'person' => {
'susan' => {
'id' => 10000,
'num' => 1
}
}
},
'982222' => {
'person' => {
'joe' => {
'id' => '123456',
'num' => 2
},
'john' => {
'id' => '123456',
'num' => 1
}
}
}
}
};
所有變量都使用'$'作爲前綴。你有'person'和'name'沒有'$'前綴。他們是文字還是變數? – 2014-10-01 00:24:50
這是一個錯字。我已經修好了。請刷新。 – user3606175 2014-10-01 00:26:02
人是字面的。是否應該包含在引號中。不過,我在代碼中看不到它的用法。只有地區在引號中。 – user3606175 2014-10-01 00:27:08