利用Data::Dumper分析Perl數(shù)據(jù)結(jié)構(gòu)
戻る
利用HTML::Template編人機(jī)界面,需要一個(gè)數(shù)據(jù)結(jié)構(gòu)(見(jiàn)下面第一個(gè)雙線下結(jié)構(gòu))。
開(kāi)始亂試,不成功。
后來(lái)想到用Data::Dumper,試了幾次就找到了正解,見(jiàn)下面試驗(yàn)結(jié)果。
------------------------------------------
------------------------------------------
my %row;
$row{LOOP2} = [
{
N11 => 'VALUE=1',
N12 => 'VALUE=2',
N13 => 'VALUE=3',
N14 => 'VALUE=4',
N15 => 'VALUE=5',
},
];
---------------------
$VAR1 = 'LOOP2';
$VAR2 = [
{
'N11' => 'VALUE=1',
'N13' => 'VALUE=3',
'N15' => 'VALUE=5',
'N12' => 'VALUE=2',
'N14' => 'VALUE=4'
}
];
------------------------------------------
------------------------------------------
use Data::Dumper;
my ($row,%list,@member);
for $n1 ( 1 .. 5 ) {
$t{N1} = 'N1' . $n1;
$t{N2} = 'VALUE=' . $n1;
$list{$t{N1}} = $t{N2};
}
push @members, { %list };
$row->{LOOP2} = [ @members ];
print Dumper($row);
---------------------
$VAR1 = {
'LOOP2' => [
{
'N11' => 'VALUE=1',
'N13' => 'VALUE=3',
'N12' => 'VALUE=2',
'N15' => 'VALUE=5',
'N14' => 'VALUE=4'
}
]
};
------------------------------------------
my %row;
for $n1 ( 1 .. 5 ) {
$t{N1} = 'N1' . $n1;
$t{N2} = 'VALUE=' . $n1;
$row{LOOP2}{$t{N1}} = $t{N2};
}
---------------------
$VAR1 = 'LOOP2';
$VAR2 = {
'N11' => 'VALUE=1',
'N13' => 'VALUE=3',
'N15' => 'VALUE=5',
'N12' => 'VALUE=2',
'N14' => 'VALUE=4'
};
------------------------------------------
my %row;
for $n1 ( 1 .. 5 ) {
$t{N1} = 'N1' . $n1;
$t{N2} = 'VALUE=' . $n1;
$row{LOOP2}{$t{N1}} = [ $t{N2} ];
}
---------------------
$VAR1 = 'LOOP2';
$VAR2 = {
'N11' => [
'VALUE=1'
],
'N13' => [
'VALUE=3'
],
'N15' => [
'VALUE=5'
],
'N12' => [
'VALUE=2'
],
'N14' => [
'VALUE=4'
]
};
------------------------------------------
my $row;
for $n1 ( 1 .. 5 ) {
$t{N1} = 'N1' . $n1;
$t{N2} = 'VALUE=' . $n1;
$$row{LOOP2}{$t{N1}} = $t{N2};
}
---------------------
$VAR1 = {
'LOOP2' => {
'N11' => 'VALUE=1',
'N13' => 'VALUE=3',
'N15' => 'VALUE=5',
'N12' => 'VALUE=2',
'N14' => 'VALUE=4'
}
};
------------------------------------------
my ($row,%list,@member);
for $n1 ( 1 .. 5 ) {
$t{N1} = 'N1' . $n1;
$t{N2} = 'VALUE=' . $n1;
$list{$t{N1}} = $t{N2};
push @members, { %list };
}
$row->{LOOP2} = [ @members ];
---------------------
$VAR1 = {
'LOOP2' => [
{
'N11' => 'VALUE=1'
},
{
'N11' => 'VALUE=1',
'N12' => 'VALUE=2'
},
{
'N11' => 'VALUE=1',
'N13' => 'VALUE=3',
'N12' => 'VALUE=2'
},
{
'N11' => 'VALUE=1',
'N13' => 'VALUE=3',
'N12' => 'VALUE=2',
'N14' => 'VALUE=4'
},
{
'N11' => 'VALUE=1',
'N13' => 'VALUE=3',
'N12' => 'VALUE=2',
'N15' => 'VALUE=5',
'N14' => 'VALUE=4'
}
]
};
------------------------------------------
my ($row,%list,@member);
for $n1 ( 1 .. 5 ) {
@members = ();
$t{N1} = 'N1' . $n1;
$t{N2} = 'VALUE=' . $n1;
$list{$t{N1}} = $t{N2};
push @members, { %list };
}
$row->{LOOP2} = [ @members ];
---------------------
$VAR1 = {
'LOOP2' => [
{
'N11' => 'VALUE=1',
'N13' => 'VALUE=3',
'N12' => 'VALUE=2',
'N15' => 'VALUE=5',
'N14' => 'VALUE=4'
}
]
};
------------------------------------------------------------------------------------
編程時(shí)隨手記的一些東西
http://www.perl.com/doc/manual/html/pod/perlref.html
A reference to an anonymous hash can be created using curly brackets:
$hashref = {
'Adam' => 'Eve',
'Clyde' => 'Bonnie',
};
A reference to an anonymous array can be created using square brackets:
$arrayref = [1, 2, ['a', 'b', 'c']];
C:\Inetpub\Scripts>perl m_start.pl
HTML::Template->output() : fatal error in loop output : Can't call method "isa"
on unblessed reference at C:/Perl/site/lib/HTML/Template.pm line 2563.
at m_start.pl line 28
http://d.hatena.ne.jp/khashi/20070501/1178010054
HTML::Template::Compiled - Template System Compiles HTML::Template files to Perl code
http://www.webdeveloper.com/forum/showthread.php?t=81589
戻る
溧阳市|
海宁市|
石门县|
温宿县|
罗田县|
镶黄旗|
定兴县|
和硕县|
乌恰县|
二手房|
宜川县|
佛冈县|
普安县|
德令哈市|
花垣县|
平原县|
河津市|
微山县|
黑龙江省|
巴塘县|
枝江市|
安阳县|
霞浦县|
卢湾区|
南郑县|
满城县|
军事|
霍州市|
招远市|
揭东县|
楚雄市|
竹北市|
内黄县|
崇义县|
丰顺县|
高要市|
大足县|
剑河县|
浙江省|
玛多县|
阿拉尔市|