Нет. Подтверждая предположение bvr, переменная может иметь только одну «связанную» магию. Когда вы вызываете tie
для уже связанной переменной, существующая магия связи (и связанный связанный объект) отбрасывается до создания новой связи.
Пример игрушки:
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