动态变量值?

use*_*573 6 perl

perl代码:

my %config = (
    randValue => int(rand(10)),
);

print $config{ randValue }."\n";
print $config{ randValue }."\n";
Run Code Online (Sandbox Code Playgroud)

将产生:

8
8
Run Code Online (Sandbox Code Playgroud)

是否有可能每次获得不同的价值?(int(rand(10))每次$config{ randValue }调用时执行)

Сух*_*й27 10

您可以使用绑定哈希或函数:

my %config = (
    randValue => sub { int(rand(10)) },
);

print $config{randValue}->();
print $config{randValue}->();
Run Code Online (Sandbox Code Playgroud)

  • 我刚刚在办公室里笑着说:"一个'巫师',一个不透明的物体,可以保存魔法信息"和"注意在全球毁灭期间永远不会被称为免费魔法"在任何幻想环境中都有令人敬畏的引用和"如果你定义一个带有自由魔法的向导并将其自身投射,它会导致一个内存循环,所以当释放向导时不会调用这个析构函数." 听起来像史诗任务的背景故事. (5认同)
  • 你可以使用*magic*或sub.`tie`只是一种魔法.`使用Variable :: Magic qw(向导演员); cast(我的$ d10,向导(get => sub {$ {$ _ [0]} = int(rand(10))+ 1}));`我建议使用sub. (4认同)