gpt4 book ai didi

perl - "Learning Perl"第 6 版中的某些程序。不使用 "use 5.014"- 为什么?

转载 作者:行者123 更新时间:2023-12-04 16:26:17 26 4
gpt4 key购买 nike

我正在与 Llama 一起学习 Perl,第 6 版,第一章中的一些程序不适用于“使用 5.014”,我不知道为什么。例如:

#!/usr/bin/perl

#use 5.014;

$n = 1;
while ($n < 10) {
$sum += $n;
$n += 2;
}
print "The total was $sum.\n";

这适用于注释掉的“use 5.014”,但包含在内,我收到以下错误:
Global symbol "$n" requires explicit package name at ch3loop.pl line 5.
Global symbol "$n" requires explicit package name at ch3loop.pl line 6.
Global symbol "$sum" requires explicit package name at ch3loop.pl line 7.
Global symbol "$n" requires explicit package name at ch3loop.pl line 7.
Global symbol "$n" requires explicit package name at ch3loop.pl line 8.
Global symbol "$sum" requires explicit package name at ch3loop.pl line 10.
Execution of ch3loop.pl aborted due to compilation errors.

但是,如果我将“my”放在变量的第一个实例之前,它仍然不会运行,但出于不同的原因:
Global symbol "$sum" requires explicit package name at ch3loop.pl line 10.
Execution of ch3loop.pl aborted due to compilation errors.

有人可以解释发生了什么吗?我知道我可以在没有“使用 5.014”的情况下运行它,但它确实在书的封面上说第 6 版。 “涵盖 Perl 5.14”,所以我很困惑。

谢谢。

最佳答案

从 v5.12 开始,当你说 use VERSION没有别的,它会自动打开 strict .由于我们直到“子程序”一章才介绍解决您的特定问题的方法,因此我们在前几章中没有做任何要求您这样做的事情。

学习 Perl 是作为教程设计的,因此我们希望在我们明确向您展示之前,您不会在程序中做任何事情。这样,我们就不必在第一章中解释所有的 Perl。

在我使用需要它的功能之前,我倾向于不使用任何版本声明,并且在开始的章节中我们不会这样做。

祝本书的其余部分好运。 :)

关于perl - "Learning Perl"第 6 版中的某些程序。不使用 "use 5.014"- 为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11805407/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com