+ -
当前位置:首页 → 问答吧 → 这样的多维数组怎么定义?

这样的多维数组怎么定义?

时间:2011-02-20

来源:互联网

如何定义如下结构的数组?
%cont=(
  "A" => {"html" => [100,200],"js" => [101,201]},
  "B" => {"php" => {"post"=>"300","get"=>"301"},"jsp" => [500,501]}
)
这样我就只需指定A或B,就可以得到相关的值,比如:
$cont{"A"}[0]=html
$cont{"A"}[0]{"html"}[0]=100

$cont{"B"}[0]=php
$cont{"B"}{"php"}{"post"}=300

这样的数据结构改怎么定义,又怎么取值?

作者: baoyu05   发布时间: 2011-02-20

$cont{"A"}[0]=html  这写的不对啊,A 的值依然是hash,不是数组啊,怎么出来下标了。
建议看下《intermediate perl》。

作者: x9x9   发布时间: 2011-02-20



QUOTE:
$cont{"A"}[0]=html  这写的不对啊,A 的值依然是hash,不是数组啊,怎么出来下标了。
建议看下《intermed ...
x9x9 发表于 2011-02-20 22:54




    我知道不对啊,我只是写我的需求,我就是来问该怎么写啊

作者: baoyu05   发布时间: 2011-02-20

我看完大骆驼的引用章节,修订你的代码,希望对你有所帮助
  1. #!perl -w
  2. use strict;

  3. my %cont=(
  4.   "A" => {"html" => [100,200],"js" => [101,201]},
  5.   "B" => {"php" => {"post"=>"300","get"=>"301"},"jsp" => [500,501]}
  6. );
  7. print "访问第一个匿名散列:\n";
  8. print $cont{"A"}->{"html"}."\n";
  9. print ${$cont{"A"}}{"html"}."\n";
  10. print %{$cont{"A"}};
  11. print "打印第一个匿名数组:\n";
  12. print @{$cont{"A"}->{"html"}};
  13. print "\n";
  14. print "打印第一个匿名数组的第二个元素:\n";
  15. print ${$cont{"A"}->{"html"}}[1]."\n";
  16. print $cont{"A"}->{"html"}->[1]."\n";
复制代码
运行结果:
访问第一个匿名散列:

ARRAY(0x3f4c2

ARRAY(0x3f4c2

htmlARRAY(0x3f4c2jsARRAY(0x3f4e80)打印第一个匿名数组:

100200

打印第一个匿名数组的第二个元素:

200

200

作者: bruce_wang_jane   发布时间: 2011-02-20