什么是Perl用这个论点来推动这种情况?

Mor*_*nar 8 perl

我刚看到代码库中的一些代码(和它的OLD代码,如Perl 3或Perl 4天)看起来像这样(我正在极大地简化):

 @array;
 push( array, $some_scalar );
Run Code Online (Sandbox Code Playgroud)

请注意,arraypush()没有@.我会假设推送后面的代码知道第一个参数应该是数组,因此从array类型地块中获取数组.这或多或少吗?如果Perl能够毫无问题地做到这一点,为什么你需要包括它@

Leo*_*ans 9

这是解析器的旧"功能".如果变量是包变量,则@在推送中不是必需的.许多人认为这是一个应该修复的错误.你真的不应该这样做.

  • 也许它确实与typeglobs有关.Jefromi上面的示例代码没有输出任何内容,但如果你删除了'my`,那么它就会输出. (2认同)