teknik

System

 
 
a) .pl       x) .pm    y) .pm    z) .pm
 
 
a)
 
use strict;
use x;         -> Exekverar x.pm => Måste returnera true => Tex 1; på sista raden, alt en printsats etc...
use y;
use z;
 
$x::var2;
 
(our $my_var = 1;)
 
 
x)
 
package x;
 
my  $var1 = 5;
our $var2 = 6;
 
$main::my_var; -> Osnyggt att peka ut från .pm tillbaka till a) .pl
 
 
z)      Objektorientard perl
 
new
{
  my ($self....);
 
  bless $self;
}
 
DESTROY
{
}
 
a)
 
my $inst = new z();  # Hmmm skriver man inte   z->new();
 

Strängar i Perl

 
 
"string"
"string $var" # Man kan ha variabler i strängar
 
Skillad: "string \$var"
 
etc...
 
Single quote:
'string $var' (är samma som "string \$var")
 
Back quote:
`string`  Exekverbar sträng
 
$var = `ls -l`; (Standard out endast)
                (Ingen exitkod utan innehållet kommer i $var)
 
system("ls -l"); (Exitkod i retur från system)
 

Loopar i Perl

Loopar i Perl fungerar som i alla andra programspråk, man loopar igenom en hel lista alterntivt tills ett särskilt villkor har uppfyllts.

# While-loop 
while ( EXPR )
{
	
}
 
# Foreach-loop 
foreach ( LIST )
{
   print "Value: " . $_; # $_ Det aktuella värdet i listan 
}
 
# Exempel på listor: (1,2,3,4,5)
#                    (1 .. 5)
#                    (1..9, 101..109)

Funktioner

Perl har som de flesta andra programmeringsspråk även funktioner och funktionsanrop. Det lite tråkiga eller flexibla, beroende på hur man ser det, är att de kan anropas på olika sätt som kan förvilla om man inte är riktigt van. Exempelvis så betyder '&my_function()', 'my_function()', och 'my_function' samma sak. Det är också omöjligt att överlagra en funktion eftersom man kan skicka med obegränsat med parametrar in i funktionen (skulle man väl i och för sig kunna lösa med hjälp av antalet inparametrar).

 
sub my_function
{

Referensvariabler

Referensvariabler är av typen skalär. Det är Perls motsvarighet till pekare i C. För läsbarhetens skull så namnge gärna en referensvariabel med _ref eller _ptr på slutet.

# Tilldelning: 
my $var_ref   = \$var;
my $array_ref = \@array;
my $hash_ref  = \%hash;
my $func_ref  = \&function;
 
# Åtkomst av ett värde från en referens: 
my $var   = $$var_ref;       # skalär 

Clearcase

Vad är Clearcase? En bra sammanfattning finns på Wikipedia för den som vill veta mer.

Här finns en samling användbara clearcase-kommandon listade. Flitigt använda under diverse konsultuppdrag mot Ericsson och TietoEnator. Observera att ct är ett alias för kommandot cleartool.

ct ls
Lista filer, privata filer, filversion och regel i aktuell vy.

Perl - Hello World!

Dessa sidor innehåller Perl-material baserat på mina egna anteckningar från en tvådagarskurs samt exempel på lösningar på problem jag stött på. Några länktips plus mina vanligaste fel finns också med. Håll till godo!

Vi startar med Hello World?

#! /usr/bin/perl 
print "Hello World!\n";

Första raden pekar ut vilken perl interpretator som ska användas. Här kan man även lägga till flaggor, exempelvis för att ställa in varningsnivån.

Prenumerera på innehåll