Programa honek komando-lerroaren bidez fitxategi-izena eta bi karaktere jasoko ditu, eta lerroz lerro karaktere horien agerpenak zenbatuz joango da. Bukaeran bi karaktere horietatik usuen zein agertu den adieraziko du, agerpen kopuru berbera izan badute hala adieraziz.
Exekuzio-adibidea:
>perl zeinKarGehiago.pl esaeraZaharrak.txt a o
a (2322) karakterea o (763) baino gehiagotan azaltzen da
Aurreko adibideak, esaeraZaharrak.txt fitxategiko “a” eta “o” karaktereen agerpen kopuruak zenbatzen ditu.
Programaren kodea:
zeinKarGehiago.pl
#!/usr/bin/perl
use strict;
use warnings;
# Fitxategia zabaldu
open (FI, $ARGV[0]) ||
die(“Ezin $ARGV[0] fitxategia zabaldu!n”);
# Bilaketa karaktereak jaso
my $karBat = $ARGV[1];
my $karBi = $ARGV[2];
my $agerpenBat = 0;
my $agerpenBi = 0;
my $lerro;
# Fitxategia lerroz-lerro irakurri
while ($lerro = <FI>){
chomp($lerro);
# Lerroa karakterez-karaktere irakurri
while ($lerro =~ /($karBat|$karBi)/gi) {
# Adierazpen erregularraren aukerak:
# g globala (agerpen guztiak)
# i letra larri/xeheak ez bereizi
# bat egitea $karBat edo $karBi-k eragin du?
if ($1 eq $karBat) {
$agerpenBat++;
}
if ($1 eq $karBi) {
$agerpenBi++;
}
}
}
if ($agerpenBat > $agerpenBi) {
print(“$karBat ($agerpenBat) karakterea $karBi
($agerpenBi) baino gehiagotan azaltzen dan”);
}
elsif ($agerpenBat < $agerpenBi) {
print(“$karBi ($agerpenBi) karakterea $karBat
($agerpenBat) baino gehiagotan azaltzen dan”);
}
else {
print(“$karBat eta $karBi karaktereen agerpen kopurua
berbera da fitxategian: $agerpenBatn”);
}
close (FI);
Karaktereekin egin berri duguna hitzekin egin nahiko bagenu, programa bera
erabil genezake aldaera txiki batekin: bilaketa-patroiei hitz-mugak jarri beharko
genizkieke aurretik eta atzetik, hitzek osorik bat egin dezaten. Honela:
$lerro =~ /b($hitzBat|$hitzBi)b/
Egin proba!
Jaitsi zeinKarGehiago.pl fitxategia