Perl 编程中的类型通配符、引用与闭包详解
1. 类型通配符与引用
类型通配符和引用都可以指向值。例如,变量 $a
可以看作是类型通配符 ${*a}
的解引用。因此, ${\$a}
和 ${*a}
引用的是同一个标量值。这种类型通配符和普通引用的等价性有一些有趣的特性,并产生了三种有用的习惯用法。
- 选择性别名 :可以使用引用语法创建选择性别名。例如:
*b = \$a; # Assigning a scalar reference to a typeglob
这样 $b
和 $a
是别名,但 @b
和 @a
等不是。
- 常量 :通过创建对常量的引用可以得到只读变量。示例如下:
*PI = \3.1415927;
# Now try to modify it.
$PI = 10;
执行上述代码,Perl 会报错:”Modification of a read - only value attempted at try.pl line 3.”
- 命名匿名子例程 :如果通过引用间接调用子例程