8.3. Perl programmering

Perl er et spændende og meget anvendeligt sprog. C og C++ er i mange tekniske sammenhænge en de facto standard, men disse programmeringssprog er ikke ret velegnede til tekst-manipulationer. Der skal allokeres den rette mængde hukommelse, og det er ofte svært at kunne beregne, hvor meget man skal bruge. Perl er som skabt til at behandle tekst. Perl er et fortolket sprog, som BASIC er det.

Check, om du har installeret Perl, ved at skrive

[daisy@linus daisy]$ rpm -q `which perl`
Ordren which perl bliver her udført og checker, om programmet perl kan findes i den nuværende søgesti (Se dette med echo $PATH). Ordren rpm -q FILNAVN viser dig hvilken RPM pakke filen findes i. Kommer der en tom streng frem, er Perl ikke installeret.

Du kan også checke, om Perl er installeret ved at skrive

[daisy@linus daisy]$ perl -v

Indtast følgende program, og gem det som leg_med_perl

#!/usr/bin/perl

@a="hej";
@b=(@a,"igen");

print "Arrayet \@b har værdierne : @b\n";
printf "Der er %i elementer i \@b\n",$#b+1;

foreach $indeks (@b)
{
  print "Ud kommer $indeks fra arrayet\n";
}

$c = "hvad med at ";
$d = "sætte strenge sammen";
$e = $c.$d;

print "Variablen \$e har værdien : $e\n";

Programmet skal gøres eksekverbart ved at skrive

[daisy@linus daisy]$  chmod +x leg_med_perl
Udføres programmet ved at skrive ./leg_med_perl, får man følgende
[daisy@linus daisy]$  ./leg_med_perl
Arrayet @b har værdierne : hej igen
Der er 2 elementer i @b
Ud kommer hej fra arrayet
Ud kommer igen fra arrayet
Variablen $e har værdien : hvad med at sætte strenge sammen

Der er selvfølgelig et par små tricks i dette lille program, men det væsentlige at lægge mærke til er, at der ikke reserveres hukommelse til nye variable, og det er legende let at arbejde videre med.

Hvad med følgende lille søde program, som tager et filnavn som input og erstatter samtlige forekomster af Microsoft med navnet Linux? Det er et program, som slet ikke kan laves så elegant og kort som i Perl.

#!/usr/bin/perl -i.bak -p
s/Microsoft/Linux/g;

Vi kan også nævne, at du kan gøre dine Perl programmer uafhængig af Perl-placeringen (om det er /usr/bin/perl eller /usr/local/bin/perl) ved at starte følgende tre liner før selve programmet. Der erstatter så den første linje.

: # Use perl
eval 'exec perl -S $0 "$@"'
    if $running_under_some_shell;

print "Det virker\n";

Hvis du nu har fået blod på tanden og vil i gang med at lære Perl, er disse to bøger standardværkerne, den ene til at komme i gang på, den anden for viderekomne: