在perl 5.8.8中我使用下一个构造:
Package Common; BEGIN { require Exporter; use vars qw( @EXPORT ); @EXPORT=qw( test ) } sub test { my ( $self ) = shift } 1;
Package My; use Common; sub test1 { print $self -> test(); } 1;
有效。但是在perl 5.10.0中它不起作用。为什么呢?
答案 0 :(得分:2)
首先,USUW(use strict; use warnings;
)。
当您这样做时,您会发现$self
未在({1}}或package My;
范围内定义My::test1
。另外Package
显然被视为没有严格'subs'的bareword,这与package
具有小写'p'的意思不同。
我怀疑这可以在5.8中使用。但我不再需要检查任何5.12以下的环境。