新手问题:二维数组的内容如何用foreach来取得?

icewolf_li 2002-08-13 06:36:16
@RenderList = ("");
$RenderList[0]["F"] = "a";
$RenderList[0]["T"] = "b";
$RenderList[1]["F"] = "c";
$RenderList[2]["T"] = "d";

foreach my $renderinfo (@RenderList){
print $renderinfo["F"]."\n".$renderinfo["T"];
}

这段代码哪里有问题?
得不到内容~~~
...全文
122 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
icewolf_li 2002-08-14
  • 打赏
  • 举报
回复
搞定了。正如 tl66 所说,原来perl里面hash的用法和数组是有区别的。
改成这样就对了。
@RenderList = ("");
$RenderList[0]{"F"} = "a";
$RenderList[0]{"T"} = "b";
$RenderList[1]{"F"} = "c";
$RenderList[2]{"T"} = "d";

foreach my $renderinfo (@RenderList){
print $renderinfo->{"F"}."\n".$renderinfo->{"T"};
}
icewolf_li 2002-08-14
  • 打赏
  • 举报
回复
我是想用数组来保存一系列的hash,从perl manual里面能找到说perl的数组之可以包含标量,但是标量可以是数字、字符串和指向其他值的引用,那么也就是说数组的内容也可以是hash了?
反正在php里面这样的写法是再正常不过的用法了,这样用法的好处在于可以很方便的找到关键字所对应的内容。
不知道perl该如何实现?
tl66 2002-08-14
  • 打赏
  • 举报
回复
还有,如果一定要用字符串做下标, 可以用hash的数组嘛
@RenderList = ("");
$RenderList[0]{"F"} = "a";
$RenderList[0]{"T"} = "b";
$RenderList[1]{"F"} = "c";
$RenderList[2]{"T"} = "d";

foreach $ele (@RenderList)
{
foreach $value (values %$ele)
{
print $value."\n";
}
}
tl66 2002-08-14
  • 打赏
  • 举报
回复
是啊, 楼主的做法好像有点问题啊 , 能拿字符串来做数组的下标吗?
楼上的因该可以用的
hoowa 2002-08-13
  • 打赏
  • 举报
回复
你这个二维数组好有特点。

将两种数组用在一起了。你是在做什么统计吗?不可以使用两个数组吗?

我现在没Perl环境,无法测试。不过,我觉得这样表达不好。

你不如使用
my @RenderList;
$RenderList[0][0]="a";
$RenderList[0][1]="b";
$RenderList[1][0]="c";
.....
....

2,203

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 CGI
社区管理员
  • CGI社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧