其中「鍵值」是字串格式,而對應值是「純量(scalar)」,
「參照(reference)」也是純量的一種,通常是指向一個資料結構所在的記憶體位址(address)
透過「參照(reference)」可以建立相當複雜的資料結構,
適當地運用可以達到強大而又靈活的資料處理,有點像是階層式資料模型。
要儲存這種資料結構,至少有兩種選擇,分別是「DBM:Deep」及「MLDBM」。
「DBM:Deep」由純Perl語言所開發,對於少量資料(數百筆」相當好用,
可是當資料量變多時,存取速度會明顯變慢。
「MLDBM」可以介接數種不同DBM存取程式庫,速度相當快,
當資料量是幾萬筆以內時,使用起來方便靈活,
對於輕量的資料庫應用,特別是小型資訊系統,是個不錯的選擇。
簡單使用MLDBM的程式範例如下
use strict;
use BerkeleyDB;
use MLDBM qw(BerkeleyDB::Btree);
use Data::Random qw(:all);
my $filename = 'foo.db';
my %db;
tie %db, 'MLDBM', -Filename => $filename,
-Flags => DB_CREATE
or die "Cannot open database $filename: $!\n";
# 產生10筆隨機資料,放入%db中,隨著迴圈的執行,資料也會同步寫到硬碟上的檔案中。
for my $seq (1..10) {
my @random_words = rand_words( size => 5 );
$db{$seq} = [@random_words];
}
沒有留言:
張貼留言