当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 3 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : Perl 的三维数组怎么实现?
帖子发表于 : 2008-09-01 19:29 
头像

注册: 2006-03-30 13:34
帖子: 178
送出感谢: 0 次
接收感谢: 0 次
关联数组可以用3维?
怎么写?


_________________
http://www12.asphost4free.com/tobey/


页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2008-09-05 15:34 

注册: 2006-05-01 12:29
帖子: 60
地址: zju
送出感谢: 0 次
接收感谢: 0 次
perl里面的数组是一维的
但是你可以用引用实现任意维的数组
可以用数组也可以用hash来实现
具体可以看intermediate perl programming
这里给出一种数组的实现
代码:
#!/usr/bin/perl
#===============================================================================
#
#         FILE:  dimension.pl
#
#        USAGE:  ./dimension.pl
#
#  DESCRIPTION: 
#
#      OPTIONS:  ---
# REQUIREMENTS:  ---
#         BUGS:  ---
#        NOTES:  ---
#       AUTHOR:  kernel (Mr), <firefoxelectric@gmail.com>
#      COMPANY:  Gentoo GNU/Linux
#      VERSION:  1.0
#      CREATED:  09/05/2008 03:21:17 PM CST
#     REVISION:  ---
#===============================================================================

use strict;
use warnings;
#A reference to three dimesion array
my $dimension;
#Initialization
#3x3x3
#Value range from 000 to 333
foreach ( 0.. 3 ){
   my $i = $_;
   foreach ( 0..$i){
      my $j = $_;
      foreach(0..$j){
         my $k = $_;
         $dimension->[$i]->[$j]->[$k] = "$i$j$k";
      }
   }
}

#Print out the value
#
foreach ( 0..3){
   my $i = $_;
   foreach (0..$i){
      my $j=$_;
      foreach(0..$j){
         my $k =$_;
         print "Index[$i][$j][$k] is :",$dimension->[$i][$j][$k],"\n";
      }
   }
}

运行结果
引用:
Index[0][0][0] is :000
Index[1][0][0] is :100
Index[1][1][0] is :110
Index[1][1][1] is :111
Index[2][0][0] is :200
Index[2][1][0] is :210
Index[2][1][1] is :211
Index[2][2][0] is :220
Index[2][2][1] is :221
Index[2][2][2] is :222
Index[3][0][0] is :300
Index[3][1][0] is :310
Index[3][1][1] is :311
Index[3][2][0] is :320
Index[3][2][1] is :321
Index[3][2][2] is :322
Index[3][3][0] is :330
Index[3][3][1] is :331
Index[3][3][2] is :332
Index[3][3][3] is :333


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2008-09-06 14:21 
头像

注册: 2006-03-30 13:34
帖子: 178
送出感谢: 0 次
接收感谢: 0 次
谢谢。

我现在的是hash,
而且是不定长的。
细想一下,
其实不是三维的。
只是有两层键值对应关系而已。
不过把一层转换成了用符号分割的字串。


_________________
http://www12.asphost4free.com/tobey/


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 3 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译