tjw*_*992 1 perl scalar reference
如何在Perl中正确定义匿名标量引用?
my $scalar_ref = ?;
my $array_ref = [];
my $hash_ref = {};
如果你想引用一些可变存储,那么就没有特别简洁的直接语法.关于你可以管理的最好的是
my $var;
my $sref = \$var;
Run Code Online (Sandbox Code Playgroud)
或整洁
my $sref = \my $var;
Run Code Online (Sandbox Code Playgroud)
或者,如果您不希望变量本身在范围内,则可以使用do块:
my $sref = do { \my $tmp };
Run Code Online (Sandbox Code Playgroud)
此时,您可以通过$sref值传递,并且其他人可以看到它引用的标量的任何突变.
这种技术当然也适用于数组或散列引用,只是因为有更简洁的语法用于[]和{}:
my $aref = do { \my @tmp }; ## same as my $aref = [];
my $href = do { \my %tmp }; ## same as my $href = {};
Run Code Online (Sandbox Code Playgroud)