我可以多次绑定一个变量吗?我自己尝试一下,但我不确定语法。我想将哈希绑定到Cache::Memcached::Tie 和 IPC::Shareable。
答案 0 :(得分:6)
没有。确认bvr的猜测,一个变量只能有一个“绑定”魔法。当您在已绑定的变量上调用tie
时,在创建新的tie之前,将丢弃现有的tie-magic(以及关联的绑定对象)。
玩具示例:
package Foo;
sub TIESCALAR { return bless [] }
sub DESTROY { print "Destroying Foo\n" }
package Bar;
sub TIESCALAR { return bless [] }
sub DESTROY { print "Destroying Bar\n" }
package main;
tie my $var, "Foo";
print "Tied to ", ref tied $var, "\n";
tie $var, "Bar";
print "Tied to ", ref tied $var, "\n";
输出:
Tied to Foo
Destroying Foo
Tied to Bar
Destroying Bar
答案 1 :(得分:4)
这不仅不可能,而且也不合理。在这种情况下,什么是fetch应该意味着什么?如何处理它们返回两个不同的值?
我怀疑你想要的是一个多级缓存系统,你可能想要查看CHI。
答案 2 :(得分:1)
我认为不可能将两个类绑定到单个项目。第二次运行tie只需删除原始链接并替换为新链接。
但应该可以编写某种多调度。我的意思是写一个接受多个其他类的类,并调用各自的方法,如FETCH
或STORE
。