Aurreko programa moldatuko dugu, oraingo honek bilaketa-termino gisa atzizki bat eskatuko digu, eta atzizki hori duten hiztegiko sarrerak itzuli beren definizioekin batera. Bilaketa bakoitzaren amaieran, topatutako sarrera kopurua ere bistaratuko du programak.
Hona hemen, adibide gisa, exekuzio-dei bat:
>perl EhAtzizki.pl
Idatzi bilaketarako atzizkia. Amaitzeko sakatu q: tasun
Hirutasun: Kristau dotrinan, Jainko bakarraren hiru
pertsonen batasunaren dogma eta ezkutukia; hiru pertsonako
Jainkoa bakar hori.
abadetasun: Abadetza, abadearen kargua eta egitekoa.
…
zuzentasun: Zuzena denaren nolakotasuna.
914 sarrera tasun atzizkiarekin bat egiten dutenak
Idatzi bilaketarako atzizkia. Amaitzeko sakatu q: q
EhAtzizki.pl Perl programaren kodea:
#!/usr/bin/perl
use strict;
use warnings;
my (@hiztegia, @eremuak, $lerro, $atzizki, $kont);
open(FI, “EH_hiztek.txt”) ||
die (“Ezin EH_hiztek.txt fitxategia zabaldu!n”);
@hiztegia = <FI>;
close (FI);
print(“Idatzi atzizkia. Amaitzeko sakatu q: “);
$atzizki = <STDIN>;
chomp($atzizki);
while ($atzizki ne “q”) {
$kont = 0;
# Sarrerari dagozkion eremuak gorde array-an
foreach my $sarrera (@hiztegia) {
@eremuak = split(/t/,$sarrera);
if ($eremuak[0] =~ /$atzizki$/) {
$kont++;
# Bistaratu sarrera hitza eta bere definizioa
print “$eremuak[0]: “;
print “$eremuak[3]n”;
}
}
print(“$kont sarrera $atzizki atzizkiarekin bat
egiten dutenakn”);
print(“Idatzi atzizkia. Amaitzeko sakatu q: “);
$atzizki = <STDIN>;
chomp($atzizki);
Atzizki bila webean says:
Inoiz gerta daiteke, esaterako, bertsoak
osatzeko errima bila ari garela, hiztegian aurkituko genituzkeen adibide ugari,
berezi eta inoiz gutxi erabilien ordez, une jakin batean gaurkotasunik handiena
duten hitzen artean ze suman aritu nahi izatea. Xede horrekin, hitz bat emanda web
orri jakinetatik, akaso egunkarien orrietatik, amaiera bereko hitzak emango
dizkigun programa bat molda genezake, ondokoa kasu.
Gainera
errima aberatsagoa nahiz ez hain aberatsa baliatzeko modua izango dugu, proposatu
hitzaren azken lau hizki berak dituzten hitzak zein gutxiagoko dituztenak
aukeratuz.
Adibidea:
C:UsersRibaryMikelenperl>perl
Atzizkia_bilatu_webean2.pl
Nondik hasiko gara?
http://www.berria.info
Zer bilatu nahi duzu?
bertsolari
0 [2] Mari
1 [2] hori
2 [2] ekarri
3 [2] Agiri
4 [2] Anzari
5 [2] emazteari
6 [2] ari
7 [2] irakurri
8 [2] Betagarri
9 [2] herri
0 [3] Mari
1 [3] auziari
2 [3] Anzari
3 [3] terrorismoari
4 [3] emazteari
5 [3] ari
0 [4] Bertsolari
#!/usr/bin/perl
use warnings;
use strict;
use LWP::Simple;
my (@bikoak, @hirukoak, @laukoak);
# Bilatu weba;
print (“Nondik hasiko gara?n”);
my $html = <STDIN>;
chomp $html;
print (“Zer bilatu nahi
duzu?n”);
my $hitza = <STDIN>;
chomp $hitza;
# Hitzaren bukaerako zenbat karaktere.
$hitza =~ /(..)$/;
my $errima2 = $1;
$hitza =~ /(…)$/;
my $errima3 = $1;
$hitza =~ /(….)$/;
my $errima4 = $1;
my $weba = get (“http://” .
$html);
# Hitzen zerrenda lortu;
my @hitzak = split (/[W]+/, $weba);
foreach my $hitz (@hitzak) {
#
Errima hitz bukaeran topatu;
if
(($hitz =~ /$errima4$/) && !(badauka($hitz, @laukoak))) {
push
(@laukoak, $hitz);
}
elsif
(($hitz =~ /$errima3$/) && !(badauka($hitz, @hirukoak))) {
push
(@hirukoak, $hitz);
}
elsif
(($hitz =~ /$errima2$/) && !(badauka($hitz, @bikoak))) {
push
(@bikoak, $hitz);
}
}
for (my $i=0; $i<=$#bikoak; $i++) {
print(“$i
[2] $bikoak[$i]n”);
}
for (my $i=0; $i<=$#hirukoak; $i++) {
print(“$i
[3] $hirukoak[$i]n”);
}
for
(my $i=0; $i<=$#laukoak; $i++) {
print(“$i
[4] $laukoak[$i]n”);
}
sub badauka {
my
$h = shift();
my
@taula = @_ ;
my
$emaitza = 0;
foreach
my $helbide_bat (@taula) {
if
($h =~ /$helbide_bat/) { $emaitza = 1;
}
}
return
$emaitza; }