Plan seminarium pt. ,,PERL - wprowadzenie''
Bartosz Sawicki
Czas trwania: 4 godziny
Wygłoszone jako część wykładu "Języki i metodologia programowania", 28.10.1999
Co to jest ?
Perl by Larry Wall, "Patologically Eclectic Rubish Language" ;)
Dokumentacja
http://www.perl.com/ , http://www.perl.org/
Archiwa CPAN, np. http://sunsite.icm.edu.pl/pub/CPAN
Perl Quick Reference Guide
Zalety
- brak konieczności kompilacji
- bardzo dobra przenośność programów
- szybkie operacje na danych tekstowych
- bezproblemowa, prawie nieograniczona, rekurencja
- dynamiczne alokowanie pamięci, (bez ograniczeń softwarowcyh)
- hasze (tablice asocjacyjne)
- ciągla kontrola typów i zasięgów zmiennych zapewnia bezpieczeństwo
- wsparcie dla setuid (bezpieczeństwo)
Wywołanie
perl [opcje] skrypt
lub
#!/usr/bin/perl [opcje]
Najważniejsze opcje -e, -w, -d
Składnia
- dowolność składni: linie, białe znaki
- komentarze
# komentarz
- koniec interpretacji __END__
Zmienne
$var -- zmienna typu skalar
@var -- tablica
%var -- hasz
$var[28], $var[-1], $var{'Feb'}, \$var
Przegląd wybranych cech języka i wbudowanych funkcji
według Quick Pelr Reference Guide, Programming Perl 5.004, Johan Vromans, Squirrel
Consultancy
- Literały, stałe znakowe
- Operatory (podobieństwa na C)
- Statments, budowa zdań
- Subroutines, packages, modules
- Programowanie obiektowe - tylko sygnalizacja
- Funkcje artmetyczne
- Funkcje konwersji typów
- Funkcje na ciągach znaków
- Funkcje na tablicach i haszach
- Wyrażenia regularne
- Funkcje wyszukiwania i zamiany
- Operatory sprawdzania plików
- Operacje na plikach
- Wejście / wyjście
- Czytanie katalogów
- Współpraca z systemem operacyjnym
- Wsparcie dla obsługi sieci
- Różne
- Zmienne i tablice specjalne
Bardzo prosty przykład
#!/usr/bin/perl
#Bardzo przykladowy plik w PERL'u
#Bartosz Sawicki
#3.11.1999
$napis="Ala ma kota";
$napis1="$napis, a moze jednak psa ?\n";
$x= 123.45;
$y= -3;
@tab= ( kura, kaczka, kogut );
$tab[@tab]= ges;
print "UWAGA ! Bede drukowal: ";
print $napis1;
$z=$x+$y;
print "Dodawanie: $x + $y = $z\n";
printf("Dodawanie: %f + %f = %f\n", $x, $y, $x+$y);
foreach (@tab) {
print "$_ - to ptak numer ".++$i."\n";
if ($_ # zmienna domyslna
=~ # operator wyszukiwania
/a/ # wyrazenie regularne
){
print "W ptaku numer $i jest litera 'a'\n";
}
}
@tab = sort @tab; print @tab;
print "\n\t\KONIEC\n\a";
__END__
Teraz wynik działania:
bash-2.01$ ./test.pl
UWAGA ! Bede drukowal: Ala ma kota, a moze jednak psa ?
Dodawanie: 123.45 + -3 = 120.45
Dodawanie: 123.450000 + -3.000000 = 120.450000
kura - to ptak numer 1
W ptaku numer 1 jest litera 'a'
kaczka - to ptak numer 2
W ptaku numer 2 jest litera 'a'
kogut - to ptak numer 3
ges - to ptak numer 4
geskaczkakogutkura
KONIEC
bash-2.01$
Przykładowe skrypty
- operacje na haszach - inicjacja, dodawanie, usuwanie, wyszukiwanie elementów, drukowanie
całego haszu
- slowcat, str. 12 ,,Perl receptury'' Tom Christiansen & Nathan Torkington
- killtags, str. 164 -"-
- rozszerzanie tyld, str. 218 -"-
- przykładowy skrypt z obsługą sieci i użyciem modułu Net::SMTP
- biblioteczka CGI_HANDLERS
- zamiana nazw plików male->DUZE (lowercase, uppercase)