## Louis ecrire: ## > It would be interesting to assess each scheme ## > in terms of resource requirements ## > (running time and memory).
## You are write, and hashes should not ## be bigger than "medium size" ;-) ## at least MacPerl hashes. ########################################### ## You can put one complete URL into one hash record: print "\n\n======= Test per pedes: ======\n"; $H{'64.207.97.183'}{ng}{gov}{nigeria}{www}{is_read}=1; #$H{'64.207.97.183'}{ng}{gov}{nigeria}{is_read}=1; ## The following might be slimmer? $H{'64.207.97.183'}{"nigeria.gov.ng"}{is_read}=1; $H{'64.207.97.183'}{"www.nigeria.gov.ng"}{is_read}=1; ## Then you can test: print "nigeria.gov.ng\n" if exists $H{'64.207.97.183'}{ng}{gov}{nigeria}{is_read}; print "www.nigeria.gov.ng\n" if exists $H{'64.207.97.183'}{ng}{gov}{nigeria}{www}{is_read}; print "WWW.NIGERIA.GOV.NG\n" if exists $H{'64.207.97.183'}{"www.nigeria.gov.ng"}{is_read}; print "NIGERIA.GOV.NG\n" if exists $H{'64.207.97.183'}{"nigeria.gov.ng"}{is_read}; ## Or test with this: print "\n\n======= Test with showHash: ======\n"; showHash(\%H); sub showHash { $indent++; my %H = %{$H=shift}; for $Hk(keys %H) { $Hv = $H{$Hk}; if (ref($Hv)) { print "--"x($indent-1), "$Hk\n" ; showHash($Hv); } else { print ".."x($indent-1), "$Hk => " . $H{$Hk} ."\n" ; } } $indent--; } ## Probably the choice what hash scheme to use ## will depend on what kind of tests you wish to ## have afterwards. ## Au revoir, ## Detlef =This will output: ======= Test per pedes: ====== www.nigeria.gov.ng WWW.NIGERIA.GOV.NG NIGERIA.GOV.NG ======= Test with showHash: ====== 64.207.97.183 --ng ----gov ------nigeria --------www - - - - - is_read => 1 --www.nigeria.gov.ng - - is_read => 1 --nigeria.gov.ng - - is_read => 1