close
Hoppa till innehållet

Perl

Från Wikipedia
För det typografiska måttet ”perl”, se Typografisk punkt. För andra betydelser, se Perl (olika betydelser).
Perl
Paradigmimperativ, procedurell, objektorienterad
Gavs ut1987
Skapat avLarry Wall
UtvecklarePerl 5 Porters
Senaste version5.44.0 (15 juli 2026)
Datatypsdisciplindynamisk
Implementationerperl
Influerat avAwk, sed, C, Bourne shell, Smalltalk, Lisp
PlattformFlera, däribland Unix, Linux, macOS och Microsoft Windows
LicensGPL version 1 eller senare eller Artistic License
Webbplatsperl.org

Perl är ett dynamiskt typat, generellt programspråk som skapades av Larry Wall. Den första offentliga utgåvan, Perl 1.000, publicerades den 18 december 1987.[1] Språket utvecklades ursprungligen för textbearbetning och används bland annat inom systemadministration, webbutveckling och nätverksprogrammering.[2]

Perl stöder både procedurell och objektorienterad programmering och har ett omfattande inbyggt stöd för textbearbetning och reguljära uttryck. Ett stort antal återanvändbara programbibliotek distribueras genom arkivet CPAN.[2]

Den femte huvudversionen, Perl 5, introducerades 1994 och har därefter fortsatt att utvecklas. Den senaste stabila utgåvan är Perl 5.44.0, publicerad den 15 juli 2026.[3][1]

Larry Wall gav ut Perl 1.000 den 18 december 1987. Under de följande åren följde Perl 2, 3 och 4, innan Perl 5.000 publicerades den 17 oktober 1994.[1]

Perl 5 innebar en omfattande omarbetning av språket och introducerade bland annat moduler, referenser och stöd för objektorienterad programmering. Samtidigt behölls en hög grad av bakåtkompatibilitet med äldre Perlprogram.[4]

Utvecklingen sker som ett projekt med öppen källkod. Kärnan, standardbiblioteket och dokumentationen underhålls av en grupp frivilliga utvecklare som vanligen benämns Perl 5 Porters eller p5p.[3]

Språkets utformning

[redigera | redigera wikitext]

Syntax och programmeringsstil

[redigera | redigera wikitext]

Perl är ett friformaterat språk, vilket innebär att blanksteg och indrag normalt inte bestämmer programmets struktur. Syntaxen har hämtat idéer från bland annat Awk, sed, C, Bourne shell, Smalltalk och Lisp.[5]

Språket erbjuder ofta flera sätt att uttrycka samma operation. Detta sammanfattas i mottot There's more than one way to do it, ofta förkortat TMTOWTDI och på svenska ungefär ”det finns mer än ett sätt att göra det på”.[5][2]

Datatyper och kontext

[redigera | redigera wikitext]

Perl har tre grundläggande typer av variabler:

  • skalärer, som kan innehålla ett enskilt tal, en textsträng eller en referens,
  • arrayer, som innehåller ordnade listor av skalärer,
  • hashar, som innehåller värden indexerade med textnycklar.

Variabeltypen markeras med ett inledande tecken, ett så kallat sigill. Skalärer skrivs med dollartecken (`$`), arrayer med snabel-a (`@`) och hashar med procenttecken (`%`).[6]

Perl skiljer bland annat mellan skalärkontext och listkontext. Samma uttryck kan därför ge olika resultat beroende på hur dess värde används.[6]

Reguljära uttryck

[redigera | redigera wikitext]

Reguljära uttryck är integrerade i Perls syntax. Operatorerna `m//` och `=~` används för att matcha text mot ett mönster, medan `s///` används för att ersätta text. Operatorn `qr//` kan användas för att skapa ett reguljärt uttryck som senare kan återanvändas.[7]

Moduler och objektorientering

[redigera | redigera wikitext]

Återanvändbar Perlkod organiseras vanligen i moduler, som kan läsas in med nyckelordet `use`. Perls traditionella objektmodell bygger på paket, subrutiner och referenser som kopplas till en klass med funktionen `bless`.[8] Sedan Perl 5.38 finns även ett experimentellt objektsystem med nyckelorden `class`, `field` och `method`. Funktionen var fortfarande klassificerad som experimentell i Perl 5.44.[9]

Comprehensive Perl Archive Network (CPAN) är ett distribuerat arkiv för Perlmoduler, programvara, dokumentation och Perls källkod. Arkivet har funnits på internet sedan oktober 1995. Moduler kan sökas genom bland annat MetaCPAN och installeras med klientprogrammet `cpan`.[10][11]

Förhållandet till Raku

[redigera | redigera wikitext]

Det språk som ursprungligen utvecklades under namnet Perl 6 heter sedan oktober 2019 Raku. Den första stabila språkspecifikationen, version 6.c, publicerades tillsammans med implementationen Rakudo den 25 december 2015.[12]

Trots det tidigare namnet är Raku inte en ny huvudversion eller ersättare för Perl. Språken betraktas i stället som två självständiga systerspråk som utvecklas som separata projekt.[12]

Plattformar och licens

[redigera | redigera wikitext]

Perl finns tillgängligt för fler än hundra plattformar. Det ingår eller kan installeras på de flesta Unixliknande operativsystem och finns även för macOS och Microsoft Windows.[13]

Perl är fri programvara och får distribueras och modifieras enligt antingen GNU General Public License version 1 eller senare, eller Artistic License.[14]

Programexempel

[redigera | redigera wikitext]

Följande program skriver texten ”Hello, world!” till standardutmatningen:

#!/usr/bin/env perl
use strict;
use warnings;

print "Hello, world!\n";

Följande exempel använder ett reguljärt uttryck för att ersätta ordet `wikimedia` med `wikipedia`:

#!/usr/bin/env perl
use strict;
use warnings;

my $text = 'wikimedia';
$text =~ s/^wikimedia$/wikipedia/;

print "$text\n";

Programmet skriver:

wikipedia
  1. 1 2 3 ”perlhist – the Perl history records” (på engelska). Perldoc Browser. Perl 5 Porters. https://perldoc.perl.org/perlhist. Läst 16 augusti 2026.
  2. 1 2 3 ”perlintro – a brief introduction and overview of Perl” (på engelska). Perldoc Browser. Perl 5 Porters. https://perldoc.perl.org/perlintro. Läst 16 augusti 2026.
  3. 1 2 ”Perl – production-ready, under active development” (på engelska). Perl.org. https://dev.perl.org/perl5/. Läst 16 augusti 2026.
  4. ”perlfaq1 – General Questions About Perl” (på engelska). Dokumentation för Perl 5.8.2. Perl 5 Porters. https://perldoc.perl.org/5.8.2/perlfaq1. Läst 16 augusti 2026.
  5. 1 2 ”perlsyn – Perl syntax: declarations, statements, comments” (på engelska). Perldoc Browser. Perl 5 Porters. https://perldoc.perl.org/perlsyn. Läst 16 augusti 2026.
  6. 1 2 ”perldata – Perl data types” (på engelska). Perldoc Browser. Perl 5 Porters. https://perldoc.perl.org/perldata. Läst 16 augusti 2026.
  7. ”perlre – Perl regular expressions” (på engelska). Perldoc Browser. Perl 5 Porters. https://perldoc.perl.org/perlre. Läst 16 augusti 2026.
  8. ”perlobj – Perl object reference” (på engelska). Perldoc Browser. Perl 5 Porters. https://perldoc.perl.org/perlobj. Läst 16 augusti 2026.
  9. ”perlexperiment – A listing of experimental features in Perl” (på engelska). Perldoc Browser. Perl 5 Porters. https://perldoc.perl.org/perlexperiment. Läst 16 augusti 2026.
  10. ”Comprehensive Perl Archive Network” (på engelska). Perl.org. https://www.cpan.org/. Läst 16 augusti 2026.
  11. ”CPAN – query, download and build Perl modules from CPAN sites” (på engelska). Perldoc Browser. Perl 5 Porters. https://perldoc.perl.org/CPAN. Läst 16 augusti 2026.
  12. 1 2 ”FAQ” (på engelska). Raku Documentation. https://docs.raku.org/language/faq. Läst 16 augusti 2026.
  13. ”Perl Download” (på engelska). Perl.org. https://www.perl.org/get.html. Läst 16 augusti 2026.
  14. ”Perl Licensing” (på engelska). Perl.org. https://dev.perl.org/licenses/. Läst 16 augusti 2026.

Externa länkar

[redigera | redigera wikitext]