Pracownia Technik Obliczeniowych
Perl
Paweł Daniluk
Wydział Fizyki
Wiosna 2017
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
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
Podstawowa składnia
http://perldoc.perl.org/perlintro.html
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 " r e d "
Mnóstwo krzaczków
Znaki $, @, % określają kontekst zmiennej. Zmienne domyślne: $_, $$, $<,
$?, $..
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 " r e d "
Mnóstwo krzaczków
Znaki $, @, % określają kontekst zmiennej. Zmienne domyślne: $_, $$, $<,
$?, $..
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 : ␣$_" ; }
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.
Wyrażenia regularne
http://perldoc.perl.org/perlrequick.html
grep
$ p a t t = s h i f t ; w h i l e (<>) {
p r i n t " $ . : ␣ ␣$_" i f m" $ p a t t " ; }
Substytucja
$_ = " M a g i c z n a ␣ l i c z b a ␣ t o ␣ 150\ n" ; p r i n t ;
s/ ( \ d+) / $1 ∗ 2 / e x ; p r i n t ;
Zadanie 1
Z pliku PDB wybierz węgle CA. Przenumeruj reszty aminokwasowe wstawiając przerwę długości 10 po reszcie 100.
Zadanie 2
Zapisz skrypt zliczający wystąpienia poszczególnych aminokwasów w pliku PDB.