gpt4 book ai didi

perl - 如何延迟加载 Perl 变量?

转载 作者:行者123 更新时间:2023-12-04 22:08:24 24 4
gpt4 key购买 nike

我有一个需要传递给子程序的变量。子程序很可能不需要这个变量,并且为变量提供值是很昂贵的。是否可以创建一个“延迟加载”对象,该对象仅在实际使用时才进行评估?我无法更改子例程本身,因此对于调用者来说,它必须仍然看起来像一个普通的 Perl 标量。

最佳答案

您需要查看 Data::LazyScalar::Defer 更新: 还有 Data::ThunkScalar::Lazy

我自己还没有尝试过任何这些,但我不确定它们是否适合某个对象。为此,您可以尝试使用 Moose 类将真实对象保存在 lazy 属性中, handles 对象提供的所有方法。 (不过,如果子例程执行 isa 检查,这将不起作用,除非它调用 isa 作为方法,在这种情况下,您可以在类中覆盖它。)

关于perl - 如何延迟加载 Perl 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3792873/

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