PERL和Komodo

时间:2013-12-19 00:32:43

标签: perl komodo

我是perl的新手,并且一直试图从书中学习。我正在使用Komodo来运行脚本。

我正在尝试创建变量,而不是编写本书的内容

$x=4;

我必须写

my $x=4;

否则我收到以下错误

Global symbol "$x" requires explicit package name

这是为什么?我可以改变吗?

3 个答案:

答案 0 :(得分:4)

你可以通过不使用use strict;来摆脱这个要求,我不知道你是否看到错误,因为你有use strict或因为Komodo正在为你添加它。

然而,do use use strict;。它捕捉到各种各样的问题。

这本书似乎在教你Perl 4时代的编码实践。 Perl 5于1994年发布!获得更好的书(例如Modern PerlLearning Perl, 6th edition)!

答案 1 :(得分:0)

当你直接使用$ x时,你没有使用use strict; 我认为本文将帮助您理解perl范围的含义。 http://perlmaven.com/scope-of-variables-in-perl

答案 2 :(得分:0)

正如其他人所指出的那样,有人正在为您的代码添加 use strict; 。这是一件好事,应该始终做到。它会捕获您在代码中可能遇到的许多错误。

但是,请检查您的图书并确保其中有关myour命令的说明。如果确实如此,我会继续坚持下去。这是一本初学者书,可能只是让你用来编写一些简单的东西,而不需要在Perl中使用很多神奇的咒语。这个想法是让你写下像这样的东西:

$x = 4;
print "Your number is $x\n";

现在这很好。让你习惯于事物。给你信心,慢慢地,小心地吸引你,就像一条垂钓鱼吸食它的猎物。没关系...... Perl很容易......不要担心事情......没有什么可以让它混淆的......没有必要在它太晚之前逃跑......

然后,SNAP!而且,他们会教你 真实 Perl。


目前,如果您不想将my放在任何地方,只是为了使您的编码示例与本书相符,请将这两个陈述放在您的程序之上:

no strict;
no warnings;

这将关闭这两个pragmas并让您继续关注您的图书。

这就像关闭核电站的紧急备份系统一样。现在你可以集中注意力,而不必一直听那些恼人的警笛声。