Perl
Perl | |||
| |||
| |||
Skapar | Larry Wall | ||
---|---|---|---|
Utviklar | Larry Wall, The Perl Foundation | ||
Utgjeve | 1987[1] | ||
Nyaste versjon | 5.40.0 (9. juni 2024)[2] | ||
Operativsystem | Linux, macOS, Microsoft Windows, Solaris, AIX, HP-UX | ||
Skrevet i | C | ||
Type | creating, programmering, webutvikling | ||
Lisens | Artistic License, GNU General Public License, version 1.0 or later | ||
Nettstad | https://www.perl.org/ |
Perl (Practical Extraction and Report Language) er eit programmeringsspråk som vart lansert av Larry Wall 18. desember 1987. Språket låner mykje av funksjonaliteten frå for eksempel C, sed, awk, sh og (i mindre grad) frå mange andre programmeringsspråk.
Versjonen, 5.8.6, som vart lansert 27. november 2004, har mellom anna støtte for Unicode.
Filosofi
[endre | endre wikiteksten]Perl vart laga for å vera eit praktisk språk for å hente ut informasjon frå tekstfiler, og for å nyttegjere seg av denne informasjonen. Eit av mottoa er «There's more than one way to do it» (TMTOWTDI – uttalest «Tim Toady»), som direkte oversett til norsk tyder «det er meir enn éin måte å gjera det på». Eit av måla med språket var å gjera enkle oppgåver enkle å løyse, og vanskelege oppgåver moglege å løysa.
Perl har direkte støtte for regulære uttrykk i syntaksen, og språket er ofte sett på som det typiske skriptspråket, og har vorte kalla «limet som held webben saman» på grunn av populariteten språket har blant «CGI-språk».
Innebygde datatypar
[endre | endre wikiteksten]Perl har tre innebygde datatypar:
- Skalarer eller Integers som dei vert kalla på engelsk kan halde ein enkelt verdi, f.eks. ein tekststreng, eit nummer eller ein referanse.
- Lister eller arrays kan halde fleire skalarar basert på ein indeks (som startar ved posisjon 0).
- Assosiative lister, eller hashar, er uordna samlingar sett saman av skalarar som er indeksert på basis av den assosierte nøkkelen.
Skalarer, lister og hasher kan tilordnes namngjevne variablar. Det første teiknet i variabelnamnet oppgjer kva datatype det er snakk om. Resten identifiserer verdien som variabelen har.
Skalarar startar alltid med «$», sjølv om den refererande variabelen høyrer til ei liste eller ein hash:
$maanader[11] # det 12. elementet i lista @maanader $adresse{'Per'} # elementet med nøkkelen 'Per' i hashen %adresse
Lister vert namngjevne med «@» som første teikn, som fortell at meir enn éin verdi vil verte returnert:
@maanader # ( $maanader[0], $maanader[1], ..., $maanader[n] ) @maanader[2,3,4] # same som ( $maanader[2], $maanader[3], $maanader[4] ) @adresse{'Per','Ola'} # same som ( $adresse{'Per'}, $adresse{'Ola'} )
Assosiative lister, hashar, startar med «%» (som i %adresse ovanfor).
Eksempel
[endre | endre wikiteksten]Hallo Wikipedia!
[endre | endre wikiteksten]#!/usr/bin/perl -w print "Hallo Wikipedia!\n";
Lykkjer
[endre | endre wikiteksten]while ( uttrykk ) { ... }
do { ... } while ( uttrykk );
do { ... } until ( uttrykk );
for ( initialisering ; termineringsbetingelse ; økningsgrad ) { ... }
foreach ( liste ) { ... }
for ( liste ) { ... }
Val
[endre | endre wikiteksten]if ( uttrykk ) { ... }
unless ( uttrykk ) { ... }
if ( uttrykk ) { ... } else { ... }
if ( uttrykk ) { ... } elsif ( uttrykk ) { ... } else { ... }
Subrutiner
[endre | endre wikiteksten]Subrutiner vert spesifiserte med nøkkelordet sub
. Variablar til subrutina vert representerte som element i den lokale (for subrutina) lista @_
. Kallar ein ei subrutine med tre argument, vert desse representerte som @_[0]
, @_[1]
og @_[2]
i subrutina. Merk at desse elementa vert referert til som skalarane $_[0]
, $_[1]
og $_[2]
. Funksjonen shift
kan også nyttast for å få tak i kvar av verdiane.
Endrest nokon av elementa i @_
i subrutinene, reflekterest også denne endringen i programmet som kalla subrutina.
Subrutiner returner vanlegvis resultatet av det siste uttrykket, men ein eksplisitt return
-verdi kan verte oppgjeven og foreslegen for å gjera det heilt klart kva programmeraren faktisk ynskjer å returnere.
Eksempel:
sub kube { my $x = shift; return $x ** 3; } $z = -4; $y = kube($z); print "$y\n";
Namngjevne argument kan simulerest ved å gi subrutina ein hash som innargument:
sub hallo { my %person = @_; return "Hallo, $person{fornamn} $person{etternamn}!\n"; } print hallo ( fornamn => 'Ola', etternamn => 'Nordmann', );
Perl og databasar
[endre | endre wikiteksten]Forskjellige DBI/DBD-modular kan nyttast for å få tilgang til dei fleste ANSI SQL-databasar, som f.eks. MySQL, PostgreSQL og Oracle.
Kjelder
[endre | endre wikiteksten]- ↑ https://metacpan.org/pod/perlhist; vitjingsdato: 2. september 2016.
- ↑ «perl v5.40.0 is now available»; kortnamn på forfattar: Graham Knop; utgjevingstidspunkt: 9. juni 2024; vitjingsdato: 10. juni 2024.