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

Podobne dokumenty
Narzędzia informatyczne w językoznawstwie

Tworzenie stron internetowych z wykorzystaniem HTM5, JavaScript, CSS3 i jquery. Łukasz Bartczuk

J ezyk AWK Kurs systemu UNIX

PERL. Practical Extraction and Report Language Pathologically Eclectic Rubbish Lister

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

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

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

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

Laboratorium Programowania Kart Elektronicznych

Język PL/SQL Procedury i funkcje składowane

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

Narzędzia informatyczne w językoznawstwie

Zaawansowane metody programowania. Elementy struktury kodu - dyrektywy - biblioteki i moduły zewnętrzne - kompilacja kodu

Laboratorium Programowania Kart Elektronicznych

Dzisiejszy wykład. Narzędzia informatyczne w językoznawstwie. Usuwanie elementów z początku tablicy. Dodawanie elementów do początku tablic

KARTA KURSU. Języki skryptowe

media Blitz wydajne sytemy szablonów

Bardzo krótki kurs Perla

Tworzenie aplikacji w języku Java

DECLARE <nazwa_zmiennej> typ [(<rozmiar> )] [ NOT NULL ] [ { := DEFAULT } <wartość> ];

INSTRUKCJA PUSTA. Nie składa się z żadnych znaków i symboli, niczego nie robi. for i := 1 to 10 do {tu nic nie ma};

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

HTTP, CGI, Perl. HTTP HyperText Transfer Protocol. CGI Common Gateway Interface. Perl Practical Extraction and Report Language

Wprowadzenie do języka Ruby

a) ile wynosiła populacja najbardziej i najmniej ludnego z województw (oraz jakie były ich nazwy)

Umieszczanie kodu. kod skryptu

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA

Języki skryptowe w programie Plans

Bash - wprowadzenie. Bash - wprowadzenie 1/39

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

POPULARNE POLECENIA SKRYPTY. Pracownia Informatyczna 2

JavaScript funkcyjność

Serwer WWW Apache. Plik konfiguracyjny httpd.conf Definiujemy m.in.: Aktualne wersje 2.4.6, , zakończony projekt

Visual C# dla zupełnie początkujących / Tony Gaddis. Wydanie IV. Gliwice, copyright Spis treści. Wstęp 11. Uwaga, czytelnicy 19

Informacja o języku. Osadzanie skryptów. Instrukcje, komentarze, zmienne, typy, stałe. Operatory. Struktury kontrolne. Tablice.

Wstęp. Ale po co? Implementacja

Microsoft IT Academy kurs programowania

Redis, skrypty w języku Lua

Komputerowe wspomaganie eksperymentu 5

Wyrażenia regularne. Wyrażenia regularne 1/41

Pakiety podprogramów Dynamiczny SQL

Programowanie MorphX Ax

Obiektowe bazy danych

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

Funkcje i instrukcje języka JavaScript

PODSTAWY BAZ DANYCH 13. PL/SQL

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

Dynamiczne przetwarzanie stron. dr Beata Kuźmińska-Sołśnia

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

Język programowania PASCAL

Test przykładowy 2 PAI WSB Wrocław /06/2018

Pobieranie argumentów wiersza polecenia

Języki programowania wysokiego poziomu. PHP cz.2.

BAZY DANYCH. Obsługa bazy z poziomu języka PHP. opracowanie: Michał Lech

Ćwiczenia 2 IBM DB2 Data Studio

Język Python. Język Python 1/35

Laboratorium Programowania Kart Elektronicznych

R dla każdego : zaawansowane analizy i grafika statystyczna / Jared P. Lander. Warszawa, Spis treści

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

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia

5-6. Struktura dokumentu html. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów

DECLARE VARIABLE zmienna1 typ danych; BEGIN

Język PL/SQL. Rozdział 5. Pakiety podprogramów. Dynamiczny SQL

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

Podstawy programowania skryptów Sh

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Programowanie internetowe

Wstęp do systemów wielozadaniowych laboratorium 19 awk

Bazy Danych i Usługi Sieciowe

PRACOWNIA INFORMATYCZNA BASH - PODSTAWOWE INFORMACJE

Bazy danych i strony WWW

Aplikacje WWW - laboratorium

ANALIZA DANYCH W STATA 8.0 CZĘŚĆ II

PLNOG#10 Hadoop w akcji: analiza logów 1

Database Connectivity

PHP i MySQL dla każdego / Marcin Lis. Wyd. 3. Gliwice, cop Spis treści

Bazy Danych i Usługi Sieciowe

wykład IV uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C, a C++. wykład IV dr Jarosław Mederski Spis Język C++ - wstęp

Język PHP. Studium Podyplomowe Sieci Komputerowe i Aplikacje Internetowe. v1.7, 2007/11/23

Zakres treści Czas. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów

Podstawy programowania III WYKŁAD 2

MVC w praktyce tworzymy system artykułów. cz. 1

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

Procedury i funkcje składowane

JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.

DIAGRAMY SYNTAKTYCZNE JĘZYKA TURBO PASCAL 6.0

Wprowadzenie do języka Java

Oracle11g: Wprowadzenie do SQL

Plan wykładu BAZY DANYCH II WYKŁAD 3. Zasięg zmiennych. Zasięg zmiennych

Wstęp do programowania

Komentarze w PHP (niewykonywane fragmenty tekstowe, będące informacją dla programisty)

Język programowania PERL wprowadzenie.

System operacyjny Linux

Oracle PL/SQL. Paweł Rajba.

Systemy internetowe. Wykład 3 PHP. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

1 Podstawy c++ w pigułce.

Tworzenie oprogramowania

Praktyka Programowania

1 Przygotował: mgr inż. Maciej Lasota

Transkrypt:

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

Plan prezentacji Introduction Hello world Podstawy programowania w Perl Wyrażenia regularne Pewne ogólne Perl funkcje Zaawansowane funkcje Wnioski

Co to jest PERL? Praktyczny język ekstrakcji i raportowania Stworzony w 1987 przez Larriego Walla i teraz powszechnie wykorzystywany Skryptowy język wysokiego poziomu, w którym są łączane cechy C, Sed, Awk, Unix shells i wiele innych Pierwotnie stworzony do przetwarzania tekstu Perl is designed to make the easy jobs easy and hard jobs possible. Motto Perla: There s more than one way to do it.

INTRODUCTION : Cechy PERLa Cechy języka Łatwy dla początkujących Zawiera funkcje, ma OO rozszerzenia (obiektowość) C-style struktury programu. Free-style składni poleceń Wbudowane wyrażenia regularne Wbudowany dostęp do baz danych zgodny z POSIX Rozszerzenia w postaci możliwości korzystania z różnego rodzaju modułów

INTRODUCTION : Cechy PERLa Inne cechy: Kompilowanie w czasie rzeczywistym Może optymatyzować C kod Może być bezpośrednio integrowany z C/C++ kodem Wbudowany debugger

Powszechna praktyka Zawsze dodawać #!/usr/bin/perl w lub use warnings; Zastanowić się nad wykorzystaniem use strict dla skryptów większych niż 10 linijek Nie porządane jest mieć zbyt dużo komentarzy # =head =cut perldoc

HELLO WORLD! Przykład hello.pl : #!/usr/bin/perl print Hello world! Wiersz poleceń > perl hello.pl Hello world! > Musimy zmienić uprawnienia najpierw: > chmod +x hello.pl >./hello.pl

Podstawy programowania w PERL: Typy danych Scalary $var Listy (Arrays) @var $var[ 1..n] Hash y (tablice asocjacyjne) %var $var[ key ] Złożone struktury danych

Podstawy programowania w PERL: Zmienne specjalne Default argument: $_ Input record separator: $/ Output field separator: $, List separator: $ Process Id: $$ Program name: $0 Command-line arguments: @ARGV Subroutine arguments: @_ Environment variables: %ENV

Podstawy programowania w PERL: Konstrukcje sterujące if ( expression ) { block } if ( expression ) { block } else { block } if ( expression ) { block } elsif ( expression ) { block } elsif ( expression ) { block } else { block } unless ( expression ) { block } unless (expression ) { block } else { block }

Podstawy programowania w PERL: Konstrukcje sterujące while ( expression ) { block } while ( expression ) { block } continue { block } do { block } while ( expression ); until ( expression ) { block } for ( statement ; expression; statement) { block } foreach variable ( list ) { block } label : goto label;

Podstawy programowania w PERL: Subroutines sub Add { local ($x, $sum); $sum = 0; foreach $x (@_){ $sum +=$x; } $sum } $test = &Add (2, $number, @lisofnumbers);

Podstawy programowania w PERL: Wyrażenia regularne Specyficzne nie tylko dla Perl Bardzo wygodne Co mogą robić: porównywać linijki (strings) zastępować linijki (strings) wybierać linijki (strings)

Podstawy programowania w PERL: Regex? $string = ~/find/ $string =~/^find/ $string =~/find$/ $string=~/^find$/. Match any character \w Match word character (alphanumeric plus _ ) \W Match non-word character \s Match whitespace character \S Match non-whitespace character \d Match digit character \D Match non-digit character \t Match tab \n Match newline \r Match return

Podstawy programowania w PERL: Znowu wyrażenia regularne Podstawowe elementy: alternacja () grupowanie [] klasa znaków [^] nie klasa znaków * pasuje 0 lub więcej + pasuje 1 lub więcej? pasuje 1 lub 0 {n} pasuje dokładnie n razy {n,} pasuje n lub więcej {n,m} pasuje n lub więcej ale mniej niż m

Pewne ogólne Perl funkcje: Strings length $I = length $string $I = length; #uses $_ split @list = split /[,\s]/, $string, 10; ($name, $value) = split /=/; substr $piece = substr $string, 2, 10; chop & chomp $c = chop $string; chomp @lines; $/= ; chomp; pack & unpack

Pewne ogólne Perl funkcje: Lists push & pop push @lists, $item; $num = push @list, @items; $item = pop @list; shift & unshift $item = shift @list; unshift @list, $item; sort @sorted = sort @list; print sort {$a $b} @list; splice @sublist = splice @list, 2, 5; splice @list, $off, $len, @newitems;

Pewne ogólne Perl funkcje: Inne time & localtime ($sec,$min,$hour,$mday,$mon,$year,$wday, $yday,$isdst) = localtime time; $now = localtime # Thu Oct 13 04:54:34 1994 rand & srand srand time; $x = rand 10;

Kiedy wykorzystujemy PERL Zaawansowane shell scripts. Zarządzanie procesami Szybkie procedury do wsadowego przetwarzania plików lub baz danych Cokolwiek co potrzebuje obsługi dużej liczby linijek CGI i inne(web-programming).

Kiedy NIE wykorzystujemy PERL Obliczenia o wysokim stopniu obciążenia Duże aplikacje

Przekazywanie wartości do programu lub podprogramu Przekazywanie jest przez wartość scalar może mieć jako wartość wskaźnik na array, hash, function etc. Parametry do programu lub funkcji przychodzą w wartości @_ my $first_value = shift @_; my first_value = $_[1]; my first_value = shift;

Co to jest moduł? Dwa typy Obiektowo-zorientowany typ Dostarcza coś podobnego do definicji klasy Zdalne wywołanie funkcji Dostarcza metodę importu subroutines lub zmiennych do użytku w main programu

Perl DBI Metoda perla łączenia z bazą danych (wirtualnie z dowolną bazą danych), czytania i modyfikacji bazy danych. Składnia jest bardzo podobna do składni SQL. Znajomość SQL jest wymagana!

Instrukcje DBI Connect wykorzystywana do tworzenia połączenia z bazą danych Prepare wykorzystywana do przygotowania instrukcji do wykonania Execute Do wykorzystywana do wykonania instrukcji przygotowanie instrukcji która nic nie zwraca i wykonać ją

Instrukcje DBI Fetch Kilka typów wykorzystane żeby zwrócić dane Disconnect Rozłączyć z serwerem (bazą danych)

Typy fetch fetchrow_arrow Wykorzystana żeby pobrać tablicę skalarów (array of scalars) za każdym razem jako alternatywa może być wykorzystana fetchrow_arrayref fetchrow_hash Wykorzystana by pobrać hash indeksowany nazwą kolumny Wolniej, ale kod bardziej przejrzysty jako alternatywa może być wykorzystana fetchrow_hashref.

Bardziej zaawansowane instrukcje Quote Wykorzystane żeby właściwe zacytować dane do wykorzystania z prepare instrukcją $value = $dbh->quote($blast_result); Placeholders Szybkość wykonania znacznie wzrasta my $prep = $dbh -> prepare ( select x from y where z =? ); loop_start $prep -> bind_param(1,$z); $prep -> execute(); loop_end

Gdzie można znaleźć więcej informacji? Books Programming Perl 2/e, Larry Wall, Tom Christiansen & Randal Schwartz (The camel book). Learning Perl 2/e, Randal Schwartz, Tom Christiansen & Larry Wall. (The llama book.) Perl in a Nutshell, Ellen Siever, Stephen Spainhour & Nathan Ptwardhan. Advanced Perl Programming, Sriram Srinivasan.

More INFO Web-sites: Perl Core Documentation http://www.perldoc.com/ Nik Silver s Perl Tutorial: http://www.comp.leeds.ac.uk/nik/st art.html

Dziękuję za uwagę!!!