高级 Perl 编程:引用、复杂数据结构与命令行选项
1. 子程序中使用引用
在 Perl 编程里,引用有着诸多实用之处。前面我们了解到引用可用于创建如二维数组和记录等实用的数据结构,接下来继续探究引用的更多用途。
1.1 以引用形式传递数组和哈希到子程序
以往我们无法直接将多个数组或哈希传递给子程序,原因在于它们在通过特殊变量@_传递时会受损。例如下面这段代码:
compare_two_arrays(@a, @b); sub compare_two_arrays { my (@array1, @array2) = @_; # etc. }本意是通过@_将@a和@b数组中的数据分别填充到子程序里的@array1和@array2中。但在列表上下文中,Perl 无法确定数组的大小,结果是@array1会获取@a和@b的所有数据,而@array2最终为空。这就表明不能将多个数组传递给子程序。
解决办法是传递数组的引用,示例代码如下:
compare_two_arrays(\@a, \@b); sub