#!/usr/bin/perl $tekstifail = 'text.txt'; ##------------ leiab POST andmed -------------## read(STDIN, $in, $ENV{'CONTENT_LENGTH'}); ## loeb sisse kõik muutujad foreach (split(/[&;]/, $in)) { # saadud url tehakse & kohalt tükideks (split) s/\+/ /g ; ($name, $value)= split('=', $_, 2) ; # kätte on saadud nimi ja väärtus $name=~ s/%([0-9A-Fa-f]{2})/chr(hex($1))/ge ; $value=~ s/%([0-9A-Fa-f]{2})/chr(hex($1))/ge ; # %-di järel olev sümbol tehakse Hexiks ja vahetab koodimärgi tähe vastu. S - tehakse sõna kaupa. G - teeb sõna põhiselt aga globaalselt (stringi ulatuses) $in{$name}.= "\0" if defined($in{$name}) ; # ei loe korduvaid (kui selline muutuja juba oli siis seda uuesti ei loeta) $in{$name}.= $value ; # kõik get ja post muutujad lisatakse in-i } ##---------- loon m6ned html-blokid sub'dena -----------## ##-- lehe ylemine pool --## sub page_top { print "Content-type: text/html\n\n"; print "Otsing failist\n"; print "\n"; print "\n"; } ##-- lehe alumine pool --## sub page_bottom { print "\n\n"; } ##-- otsingu vorm --## sub otsing_vorm { print "\n
"; print "\n
"; } #------------ kutsub subid välja---------------- &page_top; &otsing_vorm; ##------------ Avame tekstifaili -------------## $otsing = uc($in{otsing}); ## EI OLE VAHET KAS SUURED VÕI VÄIKSED TÄHED (UC) , kasutatakse otsingust saadud sõna $arv=0; open(SISU, "$tekstifail"); while () { for $i (split / /) { # / / tükeldab sõnad tühikuteks if (length($i)>0){ # vaadatakse, kas tekstist loetud sõna on suurem kui 0 $sona = uc($i); # sõnad tehakse suurte tähtedega , $i on sõna väiksena if ($sona eq $otsing) { # võrreldakse, kas sõna on otsinguga $arv=$arv+1; # kui on siis lisatakse loendurisse $tekst = $tekst." ".$i.""; # leitud sõna lisatakse rasvasena } else { $tekst = $tekst." ".$i; # kui sõna ei leitud, siis pannakse teksti tavalisena } } } } close(SISU); # faili sulgemine $tekst=~ s/\n/
/g; # (\n) asendatakse
print "Leitud: $arv"; print "
"; print $tekst; &page_bottom; exit;