#!/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";
}
#------------ 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;