perl - -$ |在Perl工作?

标签 perl variables built-in

最近,我遇到了这种方法,用于过滤列表的第二个值:

perl -E 'say grep --$|, 1..10'
13579

它是如何工作的?

最佳答案

$|是一个特殊的Perl变量,只能具有值0和1。
$|的任何非真值赋值,例如

$ | = 1;
$ | ='foo';
$ | =“4asdf”; #0 +“4asdf”为4
$ | = \ @a;

$|设置为1的效果。任何错误的零值赋值

$ | = 0;
$ | =“”;
$ | = undef;
$ | =“erk”; #0 +“erk”为0

$|设置为0。

--$|扩展为$| = $| - 1,现在您可以看到发生了什么。
如果$|最初为1,则--$|会将值更改为0。
如果$|最初为0,则--$|会尝试将值设置为-1,但实际上会将值设置为1。

关于perl - -$ |在Perl工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4959230/

相关文章:

c# - 有没有办法以编程方式将文件从 TrueCrypt 磁盘读入内存?

regex - Perl Regex - 打印匹配的值

c++ - 在循环运行的函数中声明变量的开销?

function - 用户定义函数与内置/预定义函数

mysql - Perl:在 Perl-Hash 中存储来自 Mysql 表的列

javascript - JS 函数返回 false 变量,而本应为 true

具有属性变量的 Maven 配置文件

javascript - 在 JavaScript 中循环函数可以吗?

ruby - 是否有内置 api 可以从字符串中提取模式(尽可能多次)?

perl - 通过 SSL 使用 Perl 发送电子邮件