这怎么行?
use strict;
use warnings;
sub base {
my $constant = "abcd";
my ($driver_cr) = (@_);
&$driver_cr;
}
base(sub {print $constant});
换句话说,$driver_cr 如何在没有以下条件的情况下访问 $constant:
- 将 $constant 作为 arg 传递给驱动程序
&$driver_cr($constant)
- 将 $constant 的范围更改为全局
our $constant = "abcd";
制作一个公共块并从基础移动 $constant:
use strict; use warnings; { my $constant = "abcd"; sub base { my ($driver_cr) = (@_); &$driver_cr; } base(sub {print $constant}); }