. Tie 関数 - 変数をオブジェクトクラスにバインドする | Perl 組み込み関数 | futomi s CGI Café
Tie 関数 - 変数をオブジェクトクラスにバインドする | Perl 組み込み関数 | futomi s CGI Café
Tie 関数 - 変数をオブジェクトクラスにバインドする | Perl 組み込み関数 | futomi s CGI Café

Без кейворда

tie はパッケージクラスに変数をバインドします。 パッケージクラスは tie で変数にバインドされるよう作られている必要があります。 主に DB_File (Berkeley DB version 1.x) や NDBM_FILE などで使われます。 VARIABLE にはバインドしたい変数を、 CLASSNAME にはオブジェクトを実装しているクラス名を指定します。 LIST には、バインドに使うパッケージクラスのパラメータとして使われるため、 その内容はパッケージクラスによって異なります。

use Fcntl; use NDBM_File; # ndbm で連想配列をバインド tie my %data, 'NDBM_File', 'sample', O_RDWR | O_CREAT, 0666 or die "Couldn't tie NDBM file 'filename': $!; aborting"; # レコードを追加 $data = 'Taro'; # バインドを解除 untie %data;

データベースファイルが大きい場合、 keys や values は巨大なリストを返すことになり、 膨大なメモリリソースを消費してしまいます。 そのような状況では、 each を使ってレコードを逐次処理するのが良いでしょう。

use Fcntl; use NDBM_File; tie my %hugedata, 'NDBM_File', 'hugedata', O_RDWR | O_CREAT, 0666; while ( my ( $key, $val ) = each %hugedata ) < print "$: $\n"; > untie %hugedata;

tie は dbmopen と用途が非常によく似ています。 しかし、 dbmopen は DMB のモジュールをロードする必要がなかったのに対し、 tie は明示的に DMB のモジュールをロードする必要がありますので注意してください。 その代わり、 tie では我々が DMB の種類を指定することができます。 さらに、パッケージクラスが対応していれば、連想配列だけでなく、配列なども扱える点がメリットと言えるでしょう。

CGI 製品

  • MP Form Mail CGI eCommerce 版 シェアウェア
  • fAnalyzer フリーウェア

会社情報

Copyright © futomi Co., Ltd. All Rights Reserved. | Thanks to TemplateMo for CSS Template

📎📎📎📎📎📎📎📎📎📎