Perl中threads::shared模块share函数前&符号的作用是什么?
这个&符号是Perl里用来绕过子例程原型检查的写法,具体到threads::shared的场景:
threads::shared模块的share子例程定义了原型(要求传入数组、哈希或标量的引用),正常调用share([])在多数情况下也能运行,但早期Perl版本或某些严格模式下,直接传递匿名构造的引用(比如[])可能会触发原型检查的限制。- 用
&share([])的写法会强制Perl忽略share的原型定义,直接把匿名数组引用作为参数传递给子例程,确保调用符合预期。 - 补充个细节:如果用
&share(不带括号)的写法,会把当前上下文的@_数组传递给share,但这里加了括号,所以只是单纯绕过原型,参数就是你构造的那个匿名数组引用。
内容的提问来源于stack exchange,提问作者rodman10
相关产品推荐
相关产品推荐

