perl - “* *”在这个 Perl 脚本中的作用是什么?
问题描述
我有这个 shell 脚本:
eval{print "Just ";} * * {print "Another ";} * * {print "Perl ";} * * {print "Hacker\n";}
和更多变体:
@${print "Just ";} * * {print "Another ";} * * {print "Perl ";} * * {print "Hacker\n";}
$${print "Just ";} * * {print "Another ";} * * {print "Perl ";} * * {print "Hacker\n";}
do{print "Just ";} * * {print "Another ";} * * {print "Perl ";} * * {print "Hacker\n";}
$#{print "Just ";} * * {print "Another ";} * * {print "Perl ";} * * {print "Hacker\n";}
做什么* *
?(如果我更改* *
为 ,它也可以工作& &
。)
解决方案
*
每对中的第一个是乘法;第二个是全局取消引用。所以没什么用处。
第一个是按位的,& &
第二个是子例程取消引用(和调用)。我不知道为什么使用规范的真值(由打印返回)作为代码引用并调用它不会出错;我本以为会像with&{!0}
一样出错;相反,它似乎是无操作的。&{"1"}
Undefined subroutine &main::1
推荐阅读
- python - Django 错误:/trade/confirm/ 处的 TemplateDoesNotExist
- python - 从现有列创建新列
- python - 如何编写函数计算python中未绑定数据集的运行平均值?
- aframe - 如何在帧中使用运动记录?
- javascript - 预期 2 个参数,但得到 1.ts(2554) index.ts(54, 112):未提供 'arg1' 的参数
- java - Determine the time complexity
- flutter - 多个颤振动画一个接一个地不起作用
- java - 如何正确使用 SRTM 地形数据?
- javascript - 我正在尝试对我的对象数组进行排序,但它不起作用
- javascript - 正则表达式在字符串中最后一次出现“#”后获取整个字符串