PERL. Practical Extraction and Report Language Pathologically Eclectic Rubbish Lister

Podobne dokumenty
Instrukcje. Operatory. Operatory. Instrukcje sterujące. wyrażenie1 && wyrażenie2 ;

System operacyjny Linux

Wstęp do informatyki. stęp do informatyki Polecenia (cz.2)

Powłoka bash. Kurs systemu Unix 1

Pożyteczne linki: PERL Practical Extraction and Report Language

Narzędzia informatyczne w językoznawstwie

PERL Practical Extraction and Report Language

Bash - wprowadzenie. Bash - wprowadzenie 1/39

Programowanie obiektowe

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

Microsoft IT Academy kurs programowania

Skrypty powłoki Skrypty Najcz ciej u ywane polecenia w skryptach:

DIAGRAMY SYNTAKTYCZNE JĘZYKA TURBO PASCAL 6.0

- wszystkie elementy - wszystkie elementy

Programowanie 2. Perl - Tablice asocjacyjne oraz funkcje tablicowe. Marcin Junczys-Dowmunt

Systemy operacyjne. Laboratorium 7. Perl podstawy. Jarosław Rudy Politechnika Wrocławska 27 kwietnia 2017

Bash - instrukcje warunkowe, pętle i funkcje

Programowanie skryptów powłoki

Języki i metodyka programowania. Typy, operatory, wyrażenia. Wejście i wyjście.

Podstawy programowania skrót z wykładów:

pico mojskrypt bash mojskrypt chmod +x mojskrypt./mojskrypt

PERL zarządzanie złożonością. Pavel Pachkouski

Podstawy programowania w języku C

Co to jest Perl? Programowanie w Perlu. Dlaczego właśnie Perl? Krótka historia Perl

Zaawansowany kurs języka Python

12. Skrypty w Linux - funkcje, instrukcje sterujące i obliczenia arytmetyczne

Tworzenie skryptu: Skrypty powłoki

SKRYPTY. Zadanie: Wyznaczyć wartość wyrażenia arytmetycznego

Lekcja 1. Składnia języka zmienne i podstawowe instrukcje PHP. Do wyświetlania tekstu służy instrukcja echo echo Hello world ;

Podstawy programowania w języku Visual Basic dla Aplikacji (VBA)

Wstęp do programowania. Różne różności

Co to jest Perl? Narzędzia informatyczne w językoznawstwie. Dlaczego właśnie Perl? Krótka historia Perl

Kurs rozszerzony języka Python

Skrypty BASH a. Systemy Operacyjne 2. Mateusz Hołenko. 4 października 2012

Bloki anonimowe w PL/SQL

Python. Wprowadzenie. Jolanta Bachan

Powłoka (shell) Powłoka ksh

Środowisko programisty Zestaw 7

Dzisiejszy wykład. Programowanie w Perlu. Co to jest hasz? Inicjalizacja haszów

Systemy operacyjne. Programowanie w shellu: BASH. Wydział Inżynierii Metali i Informatyki Przemysłowej

Informatyka I. Wykład 3. Sterowanie wykonaniem programu. Instrukcje warunkowe Instrukcje pętli. Dr inż. Andrzej Czerepicki

Python. Skąd taka nazwa? Kurs systemu UNIX 1

PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy.

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

Programowanie internetowe

PRACOWNIA INFORMATYCZNA BASH - PODSTAWOWE INFORMACJE

Metody numeryczne Laboratorium 2

1 Przygotował: mgr inż. Maciej Lasota

Instrukcja SO powłoka BASH i skrypty powłoki Istotne jest zrozumienie działania narzędzia history powłoki BASH. Każde polecenie wprowadzone i

Wstęp do programowania

POPULARNE POLECENIA SKRYPTY. Pracownia Informatyczna 2

Narzędzia informatyczne w językoznawstwie

Michał Bielecki, KNI 'BIOS'

Narzędzia informatyczne w językoznawstwie

PERL HISTORIA. Możliwości związane z CGI, uniwersalność oraz fakt, że Perl jest językiem darmowym stało się przyczyną jego dynamicznego rozwoju.

Programowanie w Ruby

Zasady Programowania Strukturalnego

Administracja sieciowymi systemami operacyjnymi III Klasa - Linux

Dzisiejszy wykład. Programowanie w Perlu. Usuwanie elementów z początku tablicy. Dodawanie elementów do początku tablic

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 5 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41

while(wyrażenie) instrukcja

skrypt powłoki to plik tekstowy, rozpoczynający się sekwencją: pierwsza linia określa powłokę, w której wykonywany jest skrypt; druga to komentarz

PL/SQL. Część 1 Bloki PL/SQL. Piotr Medoń

Ogólny schemat prostego formularza: A może lepiej zamiast przycisku opartego o input tak:

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

Podstawowe I/O Liczby

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Interpreter poleceń oraz zmienne środowiskowe

Pętle w PERLU postać ogólna

BASH - LINIA POLECEŃ. Bioinformatyka 2018/2019

Programowanie obiektowe

Stałe definiuje się używając funkcji define. Przykład: define( PODATEK, 22); define( INSTALACJAOS, 70); define( MS, Microsoft );

Materiały pomocnicze do wykładu 3 - Elementy języka Java

Systemy operacyjne 11

Programowanie w Ruby

Informatyka 1. Przetwarzanie tekstów

ECDL Podstawy programowania Sylabus - wersja 1.0

Wprowadzenie do programowania w powłoce


I. KARTA PRZEDMIOTU CEL PRZEDMIOTU WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI EFEKTY KSZTAŁCENIA

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

Skrypty powłoki w systemie Linux

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak

Pracownia Komputerowa wykład III

Kier. MTR Programowanie w MATLABie Laboratorium. 1. Tworzenie m-plików skryptowych i uruchamianie skryptów

Język programowania PASCAL

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Laboratorium 3. Instrukcje wyboru

Systemy operacyjne. Laboratorium 8. Perl find

System operacyjny Linux

KARTA KURSU. Języki skryptowe

PODSTAWY INFORMATYKI

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44

Liczby losowe i pętla while w języku Python

Przekierowanie wejścia wyjścia:

Bash i algorytmy. Elwira Wachowicz. 20 lutego

Podstawy programowania: Python. Wprowadzenie. Jolanta Bachan

Języki Programowania II Wykład 3. Java podstawy. Przypomnienie

Podstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje.

Transkrypt:

PERL Practical Extraction and Report Language Pathologically Eclectic Rubbish Lister

Literatura Larry Wall, Tom Christiansen, Randal L. Schwartz, Stephen Potter, PERL programowanie. Tom Christiansen, Nathan Torkington, PERL receptury.

Internet http://www.perl.com http://www.activestate.com

Pierwszy program #!/usr/bin/perl $i=5; while($i > 0) { print hello world\n ; $i--; }

Dane 1. skalary $calar

Dane 2. tablice @rray

Dane 3. hasze %hash

Składnia # to jest komentarz $i = 10; # to też jest komentarz

Składnia Skalary i ich literały dane numeryczne $var = 123; # liczba całkowita $pi = 3.14159; # liczba rzeczywista $c = 3e8; # notacja naukowa $c = 300_000_000; # notacja czytelna $o = 015; # ósemkowo 13 $x = 0xd # szesnastkowo 15

Składnia Skalary i ich literały dane tekstowe # bez interpolacji i interpretacji $txt = ala ma kota ; # z interpolacją i interpretacją $txt = ala ma kota ; # przechwycenie stdout $txt = `pwd`;

Działanie interpolacji $ona = Ala ; $to = kota ; $txt1 = $ona ma $to ; # txt1: $ona ma $to $txt2 = $ona ma $to ; # txt2: Ala ma kota

Działanie interpretacji $txt1 = linia\nlinia ; print $txt1; linia\nlinia

Działanie interpretacji $txt1 = "linia\nlinia"; print $txt1; linia linia

Tablice i ich literały @arr = ( alpha, bravo, charlie ); $arr[0] = alpha ; $arr[1] = bravo ; $arr[2] = charlie ;

Tablice i ich literały $arr[0] @arr[0] $arr[-1] $#arr # element nr 0 jest skalarem # element nr 0 jest tablicą # pierwszy element od końca # numer ostatniego elementu

Tablice i ich podstawienia ($e1,$e2,$e3) = @arr; # $e1 alpha ; # $e2 bravo ; # $e3 charlie ;

Tablice i ich podstawienia # lewa strona krótsza niż prawa ($e1,$e2) = @arr; # pomijanie elementów (undef,undef,$e1) = @arr;

Podstawienia tablic bez tablic $one = 1; $two = 2; ($one,$two) = ($two,$one);

Użycie tablicy jako skalara $i = @arr; # długość tablicy $argc = @ARGV; # tablica standardowa $cnt = scalar(@arr)

Kontekst wywołania funkcji stat EXPR Użycie w kontekście skalarnym: $x = stat file ; $x == 0 : plik nie jest dostępny $x!= 0 : plik jest dostępny

Kontekst wywołania funkcji stat EXPR Użycie w kontekście tablicowym: @x = stat file ; 0 dev device number of filesystem 1 ino inode number 2 mode file mode (type and permissions) 3 nlink number of (hard) links to the file 4 uid numeric user ID of file's owner 5 gid numeric group ID of file's owner 6 rdev the device identifier (special files only) 7 size total size of file, in bytes 8 atime last access time in seconds since the epoch 9 mtime last modify time in seconds since the epoch 10 ctime inode change time in seconds since the epoch 11 blksize preferred block size for file system I/O 12 blocks actual number of blocks allocated

Hasze i ich literały %codes = ( pl => Poland, uk => United Kingdom, de => Germany ); $codes{ pl } = Poland ; $codes{ uk } = United Kingdom ; $codes{ de } = Germany ;

Usuwanie elementu hasza delete $codes{ pl };

Sprawdzanie istnienia elementu #dobrze if(defined($codes{ pl })) { } #źle if($codes{ pl }) { }

Hasz predeklarowany %ENV $val = $ENV{"var"}; $ENV{"var"} = $val; $ENV{"PATH"}.= :/home/user/bin";

Operatory arytmetyczne $a = 2; $b = 3; $c = $a + $b; # 5 $c = $a - $b; # -1 $c = $a * $b; # 6 $c = $a / $b; # 0.66666666... $c = $a ** $b; # 8 $c = $a % $b; # 2

Operatory napisowe $a = aaa ; $b = bbb ; $c = $a. $b; # aaabbb $c = $a x 3; # aaaaaaaaa

Operatory napisowe $a = 123; $b = 4; $a.= $b; # $a = $a. $b; $a x= $b; # $a = $a x $b; etc... etc... etc...

Operator potrójny $c = $ok? $a : $b; @c = $ok? @c : @b; $c = $ok? @a : @b; # uwaga! niespodzianka! ($ok? $a : $b) = 100;

Operator przesuwania $a = 2; $b = $a >> 1; # 1 $b = $a << 1; # 4

Operatory bitowe $a = 7; $b = 1; $c = $a & $b; # 1 $c = $a $b; # 7 $c = $a ^ $b; # 6

Operatory post- i pre- ++ i -- $a = 1; ++$a; $a++; --$a; $a--; # zagadka $a = 4; $b = $a++ * ++$a; # $c?...

Operatory logiczne short circuit $c = $a && $b; # $a? $b : $a; $c = $a $b; # $a? $a : $b; $c =! $a; # $a? 0 : 1;

Operatory logiczne nowego stylu $c = $a and $b; # $a? $b : $a; $c = $a or $b; # $a? $a : $b; $c = not $a; # $a? 0 : 1; open F, /file or die bye\n ;

Operatory porównania $c = $a OP $b; relacja liczby napisy wynik równość == eq prawda/fałsz nierówność!= ne prawda/fałsz większe > gt prawda/fałsz większe równe >= ge prawda/fałsz mniejsze < lt prawda/fałsz mniejsze równe <= le prawda/fałsz porównanie <=> cmp -1,0,1

Operatory plikowe (niektóre) $a = '/home/user/file'; $c = OP $a; operacja nazwa wynik -e exists plik istnieje -r readable plik da się czytać -w writable plik da się pisać -d directory plik jest katalogiem -f file plik jest plikiem

Czym jest prawda? każdy napis z wyjątkiem "" i "0" ma wartość PRAWDA każda liczba z wyjątkiem wartości 0 ma wartość PRAWDA każda wartość niezdefiniowana ma wartość FAŁSZ

Instrukcja warunkowa (prosta) if(wyrażenie){ instrukcja; } if($a > 0) { $dodatnie++; }

Instrukcja warunkowa (złożona) if(wyrażenie){ instrukcja; } else { instrukcja; } if($a > 0) { $dodatnie++; } else { $niedodatnie++; }

Instrukcja warunkowa (kaskada) if(wyrażenie){ instrukcja; } elsif (wyrażenie) { instrukcja; } else { instrukcja; }

Instrukcja warunkowa (odwrotna) instrukcja if(wyrażenie); $dodatnie++ if ($a > 0);

Instrukcja warunkowa (zaprzeczona) unless(wyrażenie){ instrukcja; } if(!(wyrażenie)) { instrukcja; }

Instrukcja warunkowa (zaprzeczona) instrukcja unless(wyrażenie); print "równe" unless($a ne $b);

Pętla while while(wyrażenie) { } instrukcja; while($t[$i]) { $i++ }

Pętla while instrukcja while(wyrażenie); $i++ while($t[$i]);

Pętla until until(wyrażenie) { instrukcja; } until($t[$i]) { $i++ }

Pętla for for(wyr1; wyr2; wyr3) { instrukcja; } wyr1; while(wyr2) { instrukcja; wyr3; }

Nieskończona pętla for for(;;) { : : }

Pętla for Pętla for nie ma postaci krótkiej. O_O

Pętla foreach foreach $ZMIENNA(@LISTA) {... } $suma = 0; foreach $ten(@tablica) { $suma += $ten; }

Pętla foreach foreach $ten(@tablica) { $ten--; }

Sterowanie pętlą last ETYK; next ETYK; redo ETYK;