Bilaketa-programa berri bat garatuko dugu, zeinak bilaketa-hitza bere testuinguruan bistaratuko digun. Programak argumentu bezala komando-lerrotik fitxategi-izena, bilaketa-patroia eta N zenbaki bat jasoko ditu, eta bilaketa-hitza
duten lerro guztiak bistaratuko, aurreko eta hurrengo N lerroekin batera testuingurua hobeto ikustearren.
Adibide gisa bila dezagun “amorio” hitza xenpelar.txt fitxategian, aurreko eta segidako 2 lerroekin batera:
>perl aurreHurre.pl xenpelar.txt amorio 2
dote eta arrio,
ez dutela balio
amorio fiñarentzat,
zergatik izan biarko duben
il arteraño beretzat.
>
Hona hitza bere testuinguruan bistaratzen duen programaren kodea:
aurreHurre.pl
#!/usr/bin/perl
use strict;
use warnings;
my $hitza = $ARGV[1]; # bilaketa hitza
my $zenb = $ARGV[2]; # aurretik/ondoren zenbat lerro?
open(FITX, $ARGV[0]) ||
die(“Errorea! Ezin $ARGV[0] fitxategia irekin”);
# Fitxategia array-an gorde
my @lerroak = <FITX>;
# Array-a lerroz-lerro zeharkatu
for ( my $i = 0; $i <= $#lerroak; $i++) {
# Lerroak badu $hitza?
if ($lerroak[$i] =~ /b$hitzab/) {
# Bistaratu aurreko eta hurrengo $zenb
# lerroekin batera
print @lerroak[($i – $zenb) .. ($i + $zenb)];
print(“nn”);
}
}
close(FITX);
Jaitsi aurreHurre.pl fitxategia