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

Ric*_*ard 5 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 ;
Run Code Online (Sandbox Code Playgroud)

我得到了这个:

Can't call method "say" without a package or object reference at test2.pl line 10.
Run Code Online (Sandbox Code Playgroud)

谢谢!

fri*_*edo 9

say是一个新功能,在Perl 5.10中添加.为了不破坏旧代码,默认情况下它不可用.要启用它,您可以这样做

use feature 'say';
Run Code Online (Sandbox Code Playgroud)

但它可能更好

use feature ':5.12';
Run Code Online (Sandbox Code Playgroud)

这将打开Perl 5.12(您正在运行的版本)中提供的所有新功能.这包括say,state,switch,unicode_stringsarray_base功能.

请参阅feature文档,了解每个文件的用途.

  • 我更喜欢"使用5.012"来"使用功能":5.12',因为如果你试图在太旧的perl上运行它,它会提供更具描述性的错误信息. (5认同)