Hash中逗号操作符啥意思?

Hash中逗号操作符啥意思?


our %hash=();
......

my $var=$hash{"ID","ID2};


那么$var具体返回什么值呢, 该表达式表示什么意思???
我也……不明白……
能给多一点程序段吗?
找到答案了,就是将两个Key连起来作为Key


$hash{"aa","bb"}="hashtest";
那么在hash中存在key "aabb" ,值就是"hashtest"
自欺欺人!

[Copy to clipboard] [ - ]
CODE:
sh-3.2# cat a.pl
#!/usr/bin/perl
use Data::Dump qw(dump);

my %myhash = ('a', 'b', 'c', 'd', 'ac','ef');
dump(%myhash);

my $ret = $myhash{'a','c'};

print "$ret\n";

$myhash{'a','c'}='chinaunix';
dump(%myhash);

sh-3.2# perl a.pl
("c", "d", "a", "b", "ac", "ef")

("c", "d", "a", "b", "ac", "ef", "a\34c", "chinaunix")
sh-3.2#



QUOTE:
原帖由 dajun 于 2007-11-23 16:20 发表
自欺欺人!

sh-3.2# cat a.pl
#!/usr/bin/perl
use Data:ump qw(dump);

my %myhash = ('a', 'b', 'c', 'd', 'ac','ef');
dump(%myhash);

my $ret = $myhash{'a','c'};

print "$ret\n";

$myh ...

没看懂……能解释一下不?
为什么key不是ac 而是 "a\34c"
我的\34是


QUOTE:
原帖由 tony9427 于 2007-11-23 15:36 发表

our %hash=();
......

my $var=$hash{"ID","ID2};


那么$var具体返回什么值呢, 该表达式表示什么意思???

应该返回空值
在这里是一个标量上下文,
没有{"ID","ID2"}这样一个key
如果$var = @hash{"ID","ID2"}的话会返回$hash{"ID2"}
@var = @hash{"ID","ID2"}会返回这两个值


QUOTE:
原帖由 redicaps 于 2007-11-24 17:16 发表



应该返回空值
在这里是一个标量上下文,
没有{"ID","ID2"}这样一个key
如果$var = @hash{"ID","ID2"}的话会返回$hash{"ID2"}
@var = @hash{"ID","ID2"}会返回这两个值

真诡异,我不知道概说perl是聪明还是怎么……
","我这里被读入key以后变成了