我正在尝试学习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.
谢谢!
答案 0 :(得分:7)
say
是Perl 5.10中添加的新功能。为了不破坏旧代码,默认情况下它不可用。要启用它,您可以执行
use feature 'say';
但是做起来可能更好
use feature ':5.12';
将打开Perl 5.12(您正在运行的版本)中提供的所有新功能。其中包括say
,state
,switch
,unicode_strings
和array_base
功能。
请参阅feature
documentation了解每个内容的作用。
答案 1 :(得分:4)
您需要use feature qw (say);
say
的文档。
答案 2 :(得分:1)
Modern :: Perl是一个很棒的CPAN包,可以在现代版本的perl中启用函数,以及像warn和strict这样的pragma(imho)所有perl程序员都应该使用。我的所有程序现在都以这种方式开始:
使用Modern :: Perl'2013';