Pracownia Technik Obliczeniowych

Transkrypt

Pracownia Technik Obliczeniowych
Pracownia Technik Obliczeniowych
Perl
Paweł Daniluk
Wydział Fizyki
Wiosna 2016
P. Daniluk(Wydział Fizyki)
PTO V
Wiosna 2016
1 / 11
Wyrażenia regularne
Perl
Język skryptowy szczególnie dobrze dostosowany do przetwarzania list i
plików tekstowych.
There is more than one way to do it.
Easy things should be easy and hard things should be possible.
P. Daniluk(Wydział Fizyki)
PTO V
Wiosna 2016
2 / 11
Wyrażenia regularne
Perl
Język skryptowy szczególnie dobrze dostosowany do przetwarzania list i
plików tekstowych.
There is more than one way to do it.
Easy things should be easy and hard things should be possible.
PERL - Pretty Eclectic Rubbish Lister
P. Daniluk(Wydział Fizyki)
PTO V
Wiosna 2016
2 / 11
Podstawowa składnia
http://perldoc.perl.org/perlintro.html
P. Daniluk(Wydział Fizyki)
PTO V
Wiosna 2016
3 / 11
Miłe udogodnienia
Zmienne wewnątrz napisów
p r i n t " S t u d e n t ␣$name␣ g o t ␣ a ␣ $ g r a d e . \ n"
Słowniki (hashes)
my %f r u i t _ c o l o r = (
a p p l e => " r e d " ,
banana => " y e l l o w " ,
);
$ f r u i t _ c o l o r {" a p p l e " } ;
P. Daniluk(Wydział Fizyki)
# g i v e s " red "
PTO V
Wiosna 2016
4 / 11
Miłe udogodnienia
Zmienne wewnątrz napisów
p r i n t " S t u d e n t ␣$name␣ g o t ␣ a ␣ $ g r a d e . \ n"
Słowniki (hashes)
my %f r u i t _ c o l o r = (
a p p l e => " r e d " ,
banana => " y e l l o w " ,
);
$ f r u i t _ c o l o r {" a p p l e " } ;
# g i v e s " red "
Mnóstwo krzaczków
Znaki $, @, % określają kontekst zmiennej. Zmienne domyślne: $_, $$, $<,
$?, $..
P. Daniluk(Wydział Fizyki)
PTO V
Wiosna 2016
4 / 11
Operacje na plikach
open (my $ i n , "<" , " i n p u t . t x t " )
o r d i e "Can ’ t ␣ open ␣ i n p u t . t x t : ␣ $ ! " ;
my $ l i n e = <$ i n >;
my @ l i n e s = <$ i n >;
W pętli
w h i l e (< $ i n >) {
# a s s i g n s e a c h l i n e i n t u r n t o $_
p r i n t " J u s t ␣ r e a d ␣ i n ␣ t h i s ␣ l i n e : ␣$_" ;
}
P. Daniluk(Wydział Fizyki)
PTO V
Wiosna 2016
5 / 11
Operacje na plikach
w h i l e (<>) {
p r i n t " J u s t ␣ r e a d ␣ i n ␣ t h i s ␣ l i n e : ␣$_" ;
}
Ta pętla czyta z plików, których nazwy zostały podane jako parametry
skryptu lub ze standardowego wejścia.
P. Daniluk(Wydział Fizyki)
PTO V
Wiosna 2016
6 / 11
Wyrażenia regularne
http://perldoc.perl.org/perlrequick.html
P. Daniluk(Wydział Fizyki)
PTO V
Wiosna 2016
7 / 11
grep
$patt = shift ;
w h i l e (<>) {
p r i n t "$ . : ␣␣$_" i f m" $ p a t t " ;
}
P. Daniluk(Wydział Fizyki)
PTO V
Wiosna 2016
8 / 11
Substytucja
$_ = " Magiczna ␣ l i c z b a ␣ t o ␣ 150\ n" ;
print ;
s / ( \ d+) / $1 ∗ 2 / ex ;
print ;
P. Daniluk(Wydział Fizyki)
PTO V
Wiosna 2016
9 / 11
Zadanie 1
Z pliku PDB wybierz węgle CA. Przenumeruj reszty aminokwasowe
wstawiając przerwę długości 10 po reszcie 100.
P. Daniluk(Wydział Fizyki)
PTO V
Wiosna 2016
10 / 11
Zadanie 2
Zapisz skrypt zliczający wystąpienia poszczególnych aminokwasów w pliku
PDB.
P. Daniluk(Wydział Fizyki)
PTO V
Wiosna 2016
11 / 11