2011-08-25 51 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