哈希引用的赋值及输出
来源:互联网 发布:bigdecimal mysql 编辑:程序博客网 时间:2024/06/09 16:40
1.使用哈希引用
my $hash = {}; #定义一个空的匿名哈希作为哈希引用的初始化
2.哈希赋值
a.给字符串赋值
$hash->{a} = 'x';
b.给数组赋值
@array = (1, 2, 3);
foreach (@array)
{
push @{$hash->{b}} = $_;
}
c.给哈希赋值
$hash->{c}{d} = 'y';
3.输出哈希
1.如果我们想输出$hash->{a}的值,可以用
my ($key, $value) = each %{$hash};
print "key = $key. /n";
print "value = $value. /n";
2.如果我们需要输出$hash->{b}的值,
调用 my ($key, $value) = each %{$hash};后
这时的$value是一个数组,我们需要循环输出数组的值
这里有三种方法
a.
for $key ( keys %{$hash})
{
print "$key => @{$hash->{$key}}";
}
b.打印时追加数组索引
for my $key (keys %{$hash})
{
print "$key :";
#print "$key => @{$hash->{$key}} /n";
for $i (0 .. $#{$hash->{$key}})
{
print "$i = $hash->{$key}[$i] ";
}
print "/n";
}
c.
while ( my($keys, $values) = each %{$hash} )
{
print "$keys = @{$value} /n";
}
注意:这里的循环中的赋值都是属于引用赋值,所以在取值的时候都需要解引用。如@{$hash->{$key}}和@{$value}
3.如果我们需要输出$hash->{c}{d}的值,
调用 my ($key, $value) = each %{$hash};后
这时的$value是另一个哈希表,我们就需要再次用
my ($keytmp, $valuetmp) = each %{$value};
print "key = $keytmp. /n";
print "value = $valuetmp. /n";
那么打印哈希的哈希,可以用
while ( my($keys, $values) = each %{$hash})
{
print "$keys :";
while ( my($key, $value) = each %{$values})
{
print "$key = $value";
}
print "/n";
}
- 哈希引用的赋值及输出
- Javascript的赋值是引用or复制,及参数传递
- js数组及对象的赋值和引用
- php 中 实例化对象的 赋值及 指针引用
- 变量的引用赋值
- 关于C++中bitset数据类型的赋值及输出顺序
- 指针的赋值与引用的赋值
- 浅谈java对象引用及对象赋值
- java对象引用及对象赋值
- 对象的赋值和引用
- 引用类型的赋值函数
- 关于引用的赋值问题
- 【python】理解python里的赋值、引用、拷贝及作用域、内存管理、垃圾回收
- string类的实现(构造,拷贝构造,赋值元算符及输出流的实现)
- 引用赋值
- 赋值、引用
- C#值类型赋值与引用类型的赋值
- C#值类型赋值与引用类型的赋值
- 英语学习过程中的几点体会(1)
- 给图片添加水印中碰到过的问题
- 解决嵌入式linux下mount fat32 格式的磁盘不能创建大写文件夹或者磁盘中的原来的大写文件夹变成小写了
- Oracle存储过程
- socket同步异步阻塞非阻塞区别
- 哈希引用的赋值及输出
- Ext.复杂模板(XTemplate)
- 序列化序列化xml 实体
- 老K开通博客了
- MOSS AJAX WebParts开发环境设置
- 微软企业库5.0学习笔记(五)引用企业库程序集及企业库的依赖
- 虚函数,重载,继承叠加产生的问题
- 塞班自带浏览器下载路径问题
- 清除并防止C.JS注入MSSQL数据库