利用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
戻る
溧阳市| 海宁市| 石门县| 温宿县| 罗田县| 镶黄旗| 定兴县| 和硕县| 乌恰县| 二手房| 宜川县| 佛冈县| 普安县| 德令哈市| 花垣县| 平原县| 河津市| 微山县| 黑龙江省| 巴塘县| 枝江市| 安阳县| 霞浦县| 卢湾区| 南郑县| 满城县| 军事| 霍州市| 招远市| 揭东县| 楚雄市| 竹北市| 内黄县| 崇义县| 丰顺县| 高要市| 大足县| 剑河县| 浙江省| 玛多县| 阿拉尔市|