MiB:Perlcoaching
From Carls wiki
Det finns ingen undervisning i Perl är inlagd överhuvudtaget i vår nya kurs Bioinformatisk metodik. Ur mitt perspektiv är detta
- en miss i bioinformatikprogrammet som sådant, eftersom Perl är viktigare än Java för en bioinformatiker,
- en nackdel för dem som inte har programmerat något annat än Java, då Perl är ganska o-javigt,
- jobbigt för dem som inte har programmerat på länge och behöver komma in i tänket igen, och
- trist, för Perl är ett trevligt språk.
Contents |
Nästa träff
Det hann aldrig bli någon nästa träff, men det kan ju vara bra att ha kvar anteckningarna om vad jag tänkte prata om. — Carl 22:19, 7 Jul 2005 (CEST)
Jag tänkte att vi kunde ha en träff till någon gång i nästa vecka. Saker jag kommer att ta upp är bland annat
- allt trevligt man kan ha hashar till
- mer om reguljära uttryck
- referenser
- den sagolika funktionen eval()
Aktuellt förslag på tid har jag för mig är på onsdag, men jag kan minnas fel. Föreslå gärna tider och ämnen, antingen här på sidan eller via mail.
Första tillfället
Skalärer
my $fruit = '5 apples'; # deklaration
print $fruit+1, "\\n"; # 6
print uc $fruit, "\\n"; # 5 APPLES
print "tjohoo\\n" of $fruit =~ /a/;
# tjohoo!
print "perpetuum mobile\\n" if $fruit =~ /b/;
# ingen evighetsmaskin
Se även introduktion till Perl och introduktion till reguljära uttryck.
Arrayer
my @fruits = ('apples', 'pineapples', 'bananas', 'oranges');
# deklaration
@fruits = qw(apples pineapples bananas oranges);
# det här funkar också
print $fruits[0], "\\n", # apples
$fruits[2], "\\n", # bananas
$fruits[-1], "\\n"; # oranges
$, = "\\t"; # fältseparator
print @fruits[1..2], "\\n"; # pineapples bananas
print grep { $_ ne 'bananas' } @fruits, "\\n";
# apples pineapples oranges
print grep { $_ !~ /apple/ } @fruits, "\\n";
# bananas oranges
print map { uc } @fruits; # APPLES PINEAPPLES BANANAS ORANGES
my $allfruits = join ' ', @fruits;
# gör om till en sträng
print split /a/, $allfruits; # pples pine pples b n n s or nges
print reverse @fruits; # oranges bananas pineapples apples
$, = ''; # inga tabbar mer
print reverse split '', $allfruits;
# segnaro sananab selppaenip selppa
Hashar
%hiv_genes = (
HIV1gp9 => "MGGKWSKSSVI...",
HIV1gp6 => "MAGRSGDSDEE...",
HIV1gp7 => "MQPIPIVAIVA...",
); # Deklaration
print keys %hiv_genes; # Nyckelåtkomst
