描述
此函數將 VARIABLE 與提供變量類型實現的包類 CLASSNAME 聯係起來。 LIST 中的任何附加參數都會傳遞給整個類的構造函數。通常用於將哈希變量綁定到 DBM 數據庫。
用法
以下是此函數的簡單語法 -
tie VARIABLE, CLASSNAME, LIST
返回值
此函數返回對綁定對象的引用。
示例
以下是顯示其基本用法的示例代碼,我們在 /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 變量。
在打印語句中使用 $profile 時,將調用 FETCH 方法。當您為 $profile 賦值時,將調用 STORE 方法,並將 'mcslp' 作為該方法的參數。如果你能遵循這一點,那麽你就可以創建綁定的標量、數組和散列,因為它們都遵循相同的基本模型。現在讓我們檢查我們的新 FileOwner 類的細節,從 TIESCALAR 方法開始 -
相關用法
- Perl times用法及代碼示例
- Perl time用法及代碼示例
- Perl tell()用法及代碼示例
- Perl tr用法及代碼示例
- Perl telldir用法及代碼示例
- Perl tell用法及代碼示例
- Perl sin()用法及代碼示例
- Perl abs()用法及代碼示例
- Perl kill用法及代碼示例
- Perl chop()用法及代碼示例
- Perl wantarray用法及代碼示例
- Perl gmtime用法及代碼示例
- Perl exists()用法及代碼示例
- Perl split用法及代碼示例
- Perl localtime用法及代碼示例
- Perl delete()用法及代碼示例
- Perl undef用法及代碼示例
注:本文由純淨天空篩選整理自 Perl tie Function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。