Perl引用的使用与深入探究
1. 避免引用的方法及局限性
在Perl中,可以将逗号分隔的列表直接作为值放入哈希中,而非使用匿名数组(或普通数组)的引用。例如:
%hash = (key => 'value1,value2,value3');这种方法能避免使用引用,但在从数据结构中提取值时会更繁琐。了解这种技术有两个原因:一是若不常使用引用,容易忘记其工作方式;二是在处理他人编写的脚本时,可能会遇到类似技术。在Perl 5发布之前,创建复杂数据结构的唯一方法就是将数组和哈希折叠成字符串,在需要使用时再提取。
若编写新代码,建议使用引用。尽管一开始可能会觉得困惑,但使用越多就越容易掌握。
2. 引用的深入知识
2.1 标量的简写引用
若需要一次性创建多个标量引用,可以使用以下简写方式:
@listofrefs = \($thing1, $thing2, $thing3, $thing4);这等同于:
@listofrefs = (\$thing1, \$thing2, \$thing3, \$thing4);2.2 符号引用
Perl定义了两种引用:硬引用和符号引用。之前使用的引用是硬引用,它们是实际的标量数据位,可以像标量一样操作或解引用以获取所引用的数据