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);