ODBM_File - 與 odbm 檔案的繫結存取
use Fcntl; # For O_RDWR, O_CREAT, etc.
use ODBM_File;
# Now read and change the hash
$h{newkey} = newvalue;
print $h{oldkey};
...
untie %h;
ODBM_File
在 Perl hash 變數與 ODBM_File 格式的檔案之間建立連線;您可以像操作 Perl hash 一樣操作檔案中的資料,但當程式結束時,資料會保留在檔案中,供下次執行程式時使用。
使用 Perl 內建的 tie
函數搭配 ODBM_File
來建立變數與檔案之間的連線。tie
的參數應為:
您要繫結的 hash 變數。
字串 "ODBM_File"
。(這會指示 Perl 使用 ODBM_File
套件來執行 hash 的功能。)
您要繫結到 hash 的檔案名稱。
旗標。使用下列其中一個:
如果您想要在檔案不存在時建立檔案,請將 O_CREAT
新增到任何這些,就像範例中一樣。如果您省略 O_CREAT
而檔案尚未存在,則 tie
呼叫會失敗。
如果建立新檔案時要使用的預設權限。實際權限會由使用者的 umask 修改,因此您可能應該在此處使用 0666。(請參閱 perlfunc 中的「umask」。)
失敗時,tie
呼叫會傳回未定義的值,並可能會設定 $!
以包含無法繫結檔案的原因。
odbm store 傳回 -1,errno 22,在 ... 的金鑰 "..."
當您嘗試儲存太長的鍵或值時,會發出此警告。這表示變更未記錄在資料庫中。請參閱下方的錯誤和警告。
請勿接受來自不受信任來源的 ODBM 檔案。
在現代 Linux 系統上,這些通常是 GDBM 檔案,它們無法跨平台移植。
GDBM 文件並未暗示來自不受信任來源的檔案可以使用 libgdbm
安全使用。
不使用 GDBM 相容性來支援舊 dbm 的系統將使用特定於平台的函式庫,可能繼承自 BSD 系統,其中使用不受信任的檔案可能或可能不安全。
惡意製作的檔案可能會導致 perl 崩潰,甚至暴露安全漏洞。
您可以儲存在 ODBM 檔案中的資料大小有一些限制。最重要的是,金鑰的長度加上其關聯值的長度不得超過 1008 個位元組。