gpt4 book ai didi

perl - Perl 中的 BAREWORD 和 *BAREWORD 有什么区别?

转载 作者:行者123 更新时间:2023-12-04 11:43:21 25 4
gpt4 key购买 nike

my $childpid = open3(HIS_IN, HIS_OUT, HIS_ERR, $cmd, @args);

my $childpid = open3(*HIS_IN, *HIS_OUT, *HIS_ERR, $cmd, @args);

以上似乎都适用于我的应用程序。
BAREWORD有什么区别和 *BAREWORD在 Perl 中?

最佳答案

裸字的含义各不相同。大多数时候,一个裸字是一个函数调用。

sub foo { say "Hello"; }
foo;

有时,它是一个字符串文字。
$x{foo}    # $x{"foo"}

在其他情况下,它会产生一个类型团。
print STDOUT "foo";   # print { *STDOUT } "foo";

在这种情况下,
open3(HIS_IN, HIS_OUT, HIS_ERR, ...)

相当于
open3("HIS_IN", "HIS_OUT", "HIS_ERR", ...)

但是 open3使用该字符串作为调用者包中 glob 的名称,因此上述内容在功能上等同于
open3(*HIS_IN, *IS_OUT, *HIS_ERR, ...)

关于perl - Perl 中的 BAREWORD 和 *BAREWORD 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7480569/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com