Perl 引用中的自生现象
Perl引用是一种访问相同数据但使用不同变量的方法。在Perl中,引用是一种标量数据类型,它持有另一个变量的位置。另一个变量可以是标量、哈希值、数组、函数名等。嵌套数据结构可以很容易地创建,因为用户可以创建一个列表,其中包含对另一个列表的引用,而这个列表可以进一步包含对数组、标量或哈希的引用等。
引用被用来创建复杂的数据结构,如数组的数组、哈希的哈希、数组的哈希等等。所以,程序员必须对这些持有数值的引用中的每一个做一个引用。
Autovivification 是一个功能,如果对哈希或数组中未定义的值进行引用,Perl会自动为它创建一个引用值。
Autovivification可以帮助程序员编写整个变量结构并使用它,而不是在前面明确地声明该变量。它还可以使代码具有可读性。
注意: 如果一个包含undef的变量被取消引用,就像它是一个哈希引用一样,会插入一个对空的匿名哈希的引用。
语法
$variable = {
input1 =>
{
input2 => 'value **' **
}
};
例1 :
#!/usr/bin/perl
use warnings;
use strict;
my test->{fullName}->{lastName} = "Bong";
printtest, "\n"; # HASH(0x169af30)
print test->{fullName},, "\n"; # HASH(0x16b9e48)
printtest->{fullName}->{lastName}, "\n"; # Bong
输出:
HASH(0x169af30)
HASH(0x16b9e48)
Bong
例2 :
#!/usr/bin/perl
use warnings;
use strict;
my anime->{manga}->{artist} = "One Piece";
printanime, "\n"; # HASH(0x2405f30)
print anime->{manga},, "\n"; # HASH(0x2424e48)
printanime->{manga}->{artist}, "\n"; # One Piece
输出:
HASH(0x2405f30)
HASH(0x2424e48)
One Piece