问题标签 [perlop]

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 回答
171 浏览

perl - 特殊变量 %+ 有名称吗?

我想知道是否有一个运算符名称%+,而不是像这样的代码:

我可以使用更具可读性的东西:

0 投票
4 回答
594 浏览

perl - 如何检查文件名是否包含目录信息?

我想检查一个文件名中是否有任何目录信息,最好不要使用像index($file_name,'/')!=-1. 我知道该File::Spec模块,但似乎无法找到使用该模块做出此决定的方法。也许另一个模块会更好。以下是文件名的一些示例:

0 投票
4 回答
134 浏览

perl - Perl 在非严格模式下解引用

在 Perl 中,如果我有:

要对数组的一个元素进行操作,比如说第二个,我会写(可能作为更大表达式的一部分):

虽然,出于某种原因,这些也有效:

导致所有在同一个对象中:

输出:

启用这种结构的语法规则是什么?使用这些结构中的每一个,或者混合所有这些结构,设计出可靠的程序代码能走多远?这些表达的互换性如何?(总是在非严格的上下文中说话)。

关于证明我如何进入这个问题的理由,我同意“使用严格”作为一种更好的做法,但我仍然对建立非严格表达式的一些知识感兴趣。

在试图为自己的这种不安找到一些帮助时,我想到了:

  • “不严格”的概念;不要抱怨未声明的变量和怪异的语法。
  • 前缀取消引用具有比子索引 [] 更高的优先级(perldsc §“优先级警告”)。
  • 关于何时使用 @ 而不是 $ 的说明(perldata § "Slices")。
  • Perl 的运算符 (perlop) 中缺少“[]”(数组下标/切片)描述,这让我认为它不是运算符……(但它必须是别的东西。但是,什么?)。

对于我所学到的,这些提示都没有让我更好地理解我的问题。

提前致谢。

0 投票
2 回答
110 浏览

perl - 为什么“?:”运算符不能返回列表?

为什么?:操作员不能返回列表?

DOC对标量或列表上下文只字未提

UPD
另一个例子:

为什么第一个可以,第二个不行?perl 似乎不应该只是传播2,3到外部上下文的问题;

0 投票
3 回答
64 浏览

perl - 这个表达式中的优先级是什么?

当我运行这个程序时:

我从[0,1)范围中获取值。

但为此:

我从[0,100)范围中获取值。

这里的优先级是什么?为什么第一个表达式不返回[0,100)范围内的值?

0 投票
1 回答
82 浏览

linux - 为什么在 perl 替换 (s) 和 match(m) 运算符中使用 utf8 模式在单行中不起作用?

我在使用 Perl 的单行代码替换文件中的一些 utf8 文本时发现了这个问题。我知道如何在命令行上处理 utf8(使用 Perl 或 Python)?. 他们不适用于这种情况。操作系统是 linux,locate 设置为 utf8

所以这是我的问题:有没有更简单的解决方案来使用 utf8 模式形成 m 和 s 运算符与 perl 单行符,为什么简单的方法不起作用?

谢谢!

以防万一: