gpt4 book ai didi

子函数的 Perl 哈希

转载 作者:行者123 更新时间:2023-12-04 05:05:07 28 4
gpt4 key购买 nike

我希望有一个包含对子函数的引用的散列,我可以在其中根据用户定义的变量调用这些函数,我将尝试给出我正在尝试做的事情的简化示例。

my %colors = (
vim => setup_vim(),
emacs => setup_emacs(),
)

$colors{$editor}(arg1, arg2, arg3)

哪里 setup_vim()setup_emacs()将是稍后在我的文件和 $editor 中定义的子函数是用户定义的变量(即 vim 或 emacs)。这可能吗?我无法让它工作,或者找不到关于这个主题的好信息。谢谢。

(请注意,我现在将它作为一个工作 Switch 实现,但我认为像上面这样的散列可以更容易地向我现有的代码添加新条目)

最佳答案

这是语法。

my %colors = (
vim => \&setup_vim,
emacs => \&setup_emacs,
);

$colors{$editor}(@args)

请注意,您实际上可以直接使用
my %colors = (
vim => sub {...},
emacs => sub {...},
);

如果您熟悉闭包,Perl 支持已按词法声明的变量的完整闭包,您可以使用 my。

关于子函数的 Perl 哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4893799/

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