5

我正在尝试学习 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.

谢谢!

4

3 回答 3

10

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

use feature 'say';

但这样做可能更好

use feature ':5.12';

这将打开 Perl 5.12(您正在运行的版本)中可用的所有新功能。这包括saystateswitchunicode_strings特征array_base

请参阅feature文档以了解它们的作用。

于 2013-06-27T03:06:17.580 回答
4

你需要use feature qw (say);

的文档say

于 2013-06-27T03:02:29.217 回答
1

Modern::Perl 是 CPAN 上的一个很棒的包,它可以打开现代版本的 perl 中的函数以及诸如 warn 和 strict 之类的编译指示,(恕我直言)所有 perl 程序员都应该使用。我所有的程序现在都是这样开始的:

使用 Modern::Perl '2013';

于 2013-12-12T17:35:12.883 回答