Perl:没有包或对象引用,无法调用方法“说”

时间:2013-06-27 03:01:18

标签: perl perl-module

我正在尝试学习Perl,我正在使用OS-X 10.8.4并拥有Perl版本:

这是为darwin-thread-multi-2level构建的perl 5,版本12,subversion 4(v5.12.4)

我正在尝试运行此代码:

#!/usr/bin/env perl

use strict;
use warnings;


my $a = 1;
my $b = 1;

say $a + $b ;

我得到了这个:

Can't call method "say" without a package or object reference at test2.pl line 10.

谢谢!

3 个答案:

答案 0 :(得分:7)

say是Perl 5.10中添加的新功能。为了不破坏旧代码,默认情况下它不可用。要启用它,您可以执行

use feature 'say';

但是做起来可能更好

use feature ':5.12';

将打开Perl 5.12(您正在运行的版本)中提供的所有新功能。其中包括saystateswitchunicode_stringsarray_base功能。

请参阅feature documentation了解每个内容的作用。

答案 1 :(得分:4)

您需要use feature qw (say);

say的文档。

答案 2 :(得分:1)

Modern :: Perl是一个很棒的CPAN包,可以在现代版本的perl中启用函数,以及像warn和strict这样的pragma(imho)所有perl程序员都应该使用。我的所有程序现在都以这种方式开始:

使用Modern :: Perl'2013';