当前位置: 首页 > 文档资料 > Perl 入门教程 >

tie

优质
小牛编辑
132浏览
2023-12-01

描述 (Description)

此函数将VARIABLE绑定到提供变量类型实现的包类CLASSNAME。 LIST中的任何其他参数都将传递给整个类的构造函数。 通常用于将哈希变量绑定到DBM数据库。

语法 (Syntax)

以下是此函数的简单语法 -

tie VARIABLE, CLASSNAME, LIST

返回值 (Return Value)

此函数返回对绑定对象的引用。

例子 (Example)

以下是显示其基本用法的示例代码,我们在/ tmp目录中只有两个文件 -

#!/usr/bin/perl -w
package MyArray;
sub TIEARRAY {
   print "TYING\n";
   bless [];
}
sub DESTROY {
   print "DESTROYING\n";
}
sub STORE {
   my ($self, $index, $value ) = @_;
   print "STORING $value at index $index\n";
   $self[$index] = $value;
}
sub FETCH {
   my ($self, $index ) = @_;
   print "FETCHING the value at index $index\n";
   return $self[$index];
}
package main;
$object = tie @x, MyArray; #@x is now a MyArray array;
print "object is a ", ref($object), "\n";
$x[0] = 'This is test'; #this will call STORE();
print $x[0], "\n";      #this will call FETCH();
print $object->FETCH(0), "\n";
untie @x    		#now @x is a normal array again.

执行上述代码时,会产生以下结果 -

TYING
object is a MyArray
STORING This is test at index 0
FETCHING the value at index 0
This is test
FETCHING the value at index 0
This is test
DESTROYING

调用tie函数时,实际发生的是调用FileOwner中的TIESCALAR方法,将'.bash_profile'作为方法的参数传递。 这将返回一个对象,该对象通过tie与$ profile变量相关联。

在print语句中使用$ profile时,将调用FETCH方法。 为$ profile分配值时,将调用STORE方法,并使用“mcslp”作为方法的参数。 如果你可以遵循这个,那么你可以创建绑定的标量,数组和散列,因为它们都遵循相同的基本模型。 现在让我们从TIESCALAR方法开始检查新FileOwner类的细节 -