我可以多次绑定一个变量吗?我会自己尝试,但我不确定语法。我想将哈希绑定到Cache::Memcached::Tie 和 IPC::Shareable。
问问题
226 次
3 回答
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
于 2011-08-25T14:48:09.323 回答
4
这不仅不可能,而且也不明智。在这种情况下 fetch 应该是什么意思?如何处理它们返回两个不同的值?
我怀疑你想要的是一个多级缓存系统,你可能想研究一下CHI。
于 2011-08-25T14:34:37.883 回答
1
我认为不可能将两个类与单个项目联系起来。第二次运行 tie 只需删除原始链接并替换为新链接。
不过,应该可以编写某种多调度。我的意思是编写一个接受多个其他类并调用它们各自的方法的类,例如FETCH
or STORE
。
于 2011-08-25T14:10:09.427 回答