perl版本之间的区别

时间:2011-06-08 10:31:22

标签: perl

在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中它不起作用。为什么呢?

1 个答案:

答案 0 :(得分:2)

首先,USUW(use strict; use warnings;)。

当您这样做时,您会发现$self未在({1}}或package My;范围内定义My::test1。另外Package显然被视为没有严格'subs'的bareword,这与package具有小写'p'的意思不同。

我怀疑这可以在5.8中使用。但我不再需要检查任何5.12以下的环境。