问题标签 [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.
perl - 为什么 File::Slurp 在应该返回一个列表时返回一个标量?
我是 File::Slurp 模块的新手,在我的第一次测试中,它没有给出我期望的结果。我花了一段时间才弄清楚,所以现在我对为什么我会看到这种特定行为感兴趣。
我对 File::Slurp 的调用如下所示:
我包括了“死”部分,因为我习惯于在打开文件时这样做。我的@array 总是以数组的第一个元素中的文件的全部内容结束。最后我取出“|| die”部分,它开始按我预期的那样工作。
下面是一个例子来说明:
为什么|| 死有什么不同?我感觉这可能更像是 Perl 优先级问题,而不是 File::Slurp 问题。我查看了 File::Slurp 模块,如果出现问题,它似乎设置为 croak,所以我想正确的方法是让 File::Slurp 为你发声。现在我只是好奇为什么我会看到这些差异。
perl - Perl 编译问题
我在编译这个方法时遇到了一些麻烦:
这是错误消息:
谁能看出问题出在哪里?
perl - 请帮助我理解“Programming Perl”书中的片段
我阅读了 Tom Christiansen、brian d foy、Larry Wall、Jon Orwant 的“Programming Perl”。以下是我没看懂的文字(具体看不懂的地方用粗体标出):
您真正想知道的是哪些运算符为其操作数提供了哪些上下文。碰巧的是,您可以很容易地分辨出哪些提供列表上下文,因为它们的句法描述中都有 LIST。其他一切都提供标量上下文。一般来说,它非常直观。如有必要,您可以使用伪函数将标量上下文强制到 LIST 中间的参数上
scalar
。Perl 没有提供在上下文中强制列表上下文的方法,因为在任何你想要列表上下文的地方,它已经由某些控制函数的 LIST 提供。
为方便起见,我想提出以下问题:
片段中的LIST是什么意思?
什么是句法描述?(似乎是某种文档)
下一段文字是什么意思:
您可以将标量上下文强制到 LIST 中间的参数上
perl - 有没有办法在 Perl 中强制 void 上下文?
我想知道这只是出于对 Perl 工作方式的极客好奇,以及你能在这样的事情上走多远。
有一些函数被编写为在三个上下文中的每一个上都有不同的作用。
用下面的代码作为一个非常简单的例子:
输出:
你能想出一种方法来激起调用后say
输出的第三个吗?void
context()
我理解这是一个相当矛盾的地方,因为 void context 可能意味着你并没有真正返回/分配任何东西。但正如我从我所读到的 Perl 工作方式中所了解的那样,这不是什么都没有返回,而是返回值在 void 上下文中执行后被丢弃。
所以,我想知道:当你在调用函数的那一刻碰巧在列表或标量上下文中时,是否有一种方法可以强制void 上下文,就像你可以强制列表或标量上下文一样?