问题标签 [perl-context]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
239 浏览

perl - 为什么 File::Slurp 在应该返回一个列表时返回一个标量?

我是 File::Slurp 模块的新手,在我的第一次测试中,它没有给出我期望的结果。我花了一段时间才弄清楚,所以现在我对为什么我会看到这种特定行为感兴趣。

我对 File::Slurp 的调用如下所示:

我包括了“死”部分,因为我习惯于在打开文件时这样做。我的@array 总是以数组的第一个元素中的文件的全部内容结束。最后我取出“|| die”部分,它开始按我预期的那样工作。

下面是一个例子来说明:

为什么|| 死有什么不同?我感觉这可能更像是 Perl 优先级问题,而不是 File::Slurp 问题。我查看了 File::Slurp 模块,如果出现问题,它似乎设置为 croak,所以我想正确的方法是让 File::Slurp 为你发声。现在我只是好奇为什么我会看到这些差异。

0 投票
1 回答
168 浏览

perl - Perl 编译问题

我在编译这个方法时遇到了一些麻烦:

这是错误消息:

谁能看出问题出在哪里?

0 投票
1 回答
121 浏览

perl - 请帮助我理解“Programming Perl”书中的片段

我阅读了 Tom Christiansen、brian d foy、Larry Wall、Jon Orwant 的“Programming Perl”。以下是我没看懂的文字(具体看不懂的地方用粗体标出):

您真正想知道的是哪些运算符为其操作数提供了哪些上下文。碰巧的是,您可以很容易地分辨出哪些提供列表上下文,因为它们的句法描述中都有 LIST。其他一切都提供标量上下文。一般来说,它非常直观。如有必要,您可以使用伪函数将标量上下文强制到 LIST 中间的参数上scalar 。Perl 没有提供在上下文中强制列表上下文的方法,因为在任何你想要列表上下文的地方,它已经由某些控制函数的 LIST 提供。

为方便起见,我想提出以下问题:

  1. 片段中的LIST是什么意思?

  2. 什么是句法描述?(似乎是某种文档)

  3. 下一段文字是什么意思:

您可以将标量上下文强制到 LIST 中间的参数上

0 投票
3 回答
1002 浏览

perl - 有没有办法在 Perl 中强制 void 上下文?

我想知道这只是出于对 Perl 工作方式的极客好奇,以及你能在这样的事情上走多远。

有一些函数被编写为在三个上下文中的每一个上都有不同的作用。

用下面的代码作为一个非常简单的例子:

输出:

你能想出一种方法来激起调用后say输出的第三个吗?voidcontext()

我理解这是一个相当矛盾的地方,因为 void context 可能意味着你并没有真正返回/分配任何东西。但正如我从我所读到的 Perl 工作方式中所了解的那样,这不是什么都没有返回,而是返回值在 void 上下文中执行后被丢弃。

所以,我想知道:当你在调用函数的那一刻碰巧在列表或标量上下文中时,是否有一种方法可以强制void 上下文,就像你可以强制列表或标量上下文一样?