在perltoot中是这段代码:
$rec = {
name => "Jason",
age => 23,
peers => [ "Norbert", "Rhys", "Phineas"],
};
这是一个字符串还是某种哈希(我认为哈希是用%
声明的)?
答案 0 :(得分:13)
它是哈希的reference(一种指针)。引用(以Perl中的' $'开头的任何内容)是一个标量,在这种情况下是一个标量"指向"到非标量值。
@ta = (10,20,30); # array
$tb = [10,20,30]; # reference to an array
%tc = (name => 'John', age => 23); # hash
$td = {name => 'John', age => 23}; # reference to a hash
print( $ta[1] . "\n");
print( $tb->[1] . "\n");
print( $tc{'name'} . "\n");
print( $td->{'name'} . "\n");
理解引用对于除了偶然的Perl编程至关重要。例如,您需要使用引用来创建嵌套结构(数组数组等)。
答案 1 :(得分:6)
{ }
创建一个哈希值和一个引用,然后返回后者。
{ a => 1, b => 2 }
大致相当于
do { my %anon = ( a => 1, b => 2 ); \%anon }
此运算符记录在perlref。
中