Přístup do databáze je pomocí asociativního pole, které se databázi přiřadí při jejím otevírání. Toto asociativní pole (nazývané DBM pole) je poté používané pro přístup do databáze a její modifikaci. Vytvoření nového prvku pole okamžitě modifikuje databázi. Zrušení prvku pole okamžitě zruží záznam v databázi.
Velikost, počet a druh klíčů a hodnot v DBM databázi je omezený a DBM pole má stejná omezení. Viz. libdbm. Pokud však budete používat klíče i hodnoty do 1000 libovolných binárních znaků budete bez problémů.
dbmopen(%POLE,"dbmsoubor",$mod);Kde:
%pole
- je asociativní pole, jehož jméno se uvádí velkými písmeny.
"dbmsoubor"
- databáze s nímž se propojí asociativní pole. Databáze je obvykle uložena na disku jako dvojice souborů: dbmsoubor.dir a dbmsoubor.pag
$mod
- je číslo určující přístupový mód k souborům databáze pro případ, že se databáze vytváří. Často se používá 0644 (read pro všechny a zápis pouze pro vlastníka). Pokud databáze existuje, nemá parametr význam. Pokud nechcete databázi vytvářet použijte mód undef
.
dbmopen(%JMENA,"mojejmena",0644);Spojí asociativní pole %JMENA s diskovými soubory mojejmena.dir a mojejmena.pag v aktuálním adresáři. Pokud soubory neexistují, vytvoří je s přístupovým módem 0644.
Příkaz vrací výsledkový kód 1, pokud se podaří databázi otevřít nebo vytvořit.Příklad:
dbmopen(%ABC,"/etc/abc",undef) || die "nelze otevrit databaze /etc/abc";Databáze se uzavře příkazem dbmclose(%POLE), podobně jako soubor.
dbmopen(%JMENA,"jmena",0644); %JMENA=("Alena",10,"Jana",11,"Petr",12); # naplneni databaze foreach $klic (keys %JMENA) { print "$klic ma hodnotu $JMENA{$klic}\n"; # opis databaze } $JMENA{"Jana"} = 30; # oprava zaznamu v databazi $JMENA{"Pepa"} = 44; # pridani zazanamu do databaze foreach $klic (keys %JMENA) { print "$klic ma hodnotu $JMENA{$klic}\n"; # opis databaze } dbmclose (%JMENA);