多次绑定变量

时间:2011-08-25 13:39:58

标签: perl tie

我可以多次绑定一个变量吗?我自己尝试一下,但我不确定语法。我想将哈希绑定到Cache::Memcached::Tie IPC::Shareable

3 个答案:

答案 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只需删除原始链接并替换为新链接。

但应该可以编写某种多调度。我的意思是写一个接受多个其他类的类,并调用各自的方法,如FETCHSTORE