2011-08-25 59 views
4

我可以多次绑定一个变量吗?我会自己尝试,但我不确定语法。我想把一个散列关联到Cache::Memcached::TieIPC::Shareable多次绑定变量

+0

为什么这是一个语法问题?你不可以试试'我的$ t1 = tie $ something,...;我的$ t2 =领带$ t1,...'?除此之外,我不知道这是否有效。直觉上它应该。 – musiKk

回答

1

我不认为有可能将两个类绑定到单个项目。第二次运行领带时,请删除原来的链接并更换新的链接。

尽管如此,应该可以编写某种多派遣。我的意思是写一个接受多个其他类的类并调用它们各自的方法,如FETCHSTORE

4

这不仅是不可能的,但它也不明智。在这种情况下,取指应该是什么意思?如何处理它们返回两个不同的值?

我怀疑你想要的是一个多级缓存系统,你可能想看看CHI

+0

CHI可能会在绑定对象后允许“IPC :: Shareable”工作。我将不得不放弃一下。 –

6

不。确认bvr的猜测,一个变量只能有一个“绑定”的魔法。当您在已绑定的变量上调用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