Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Scripting Language Programming PERL Παρουσιάζουν : Σελεάρη Φρόσω Διαβαστός Ανδρέας Ιωνά Πάρης.

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Scripting Language Programming PERL Παρουσιάζουν : Σελεάρη Φρόσω Διαβαστός Ανδρέας Ιωνά Πάρης."— Μεταγράφημα παρουσίασης:

1 Scripting Language Programming PERL Παρουσιάζουν : Σελεάρη Φρόσω Διαβαστός Ανδρέας Ιωνά Πάρης

2 Τι είναι η Perl Τι είναι η Perl Interpreted scripting programming language. Σχεδιάστηκε κυρίως για επεξεργασία κειμένων. Δανείστηκε χαρακτηριστικά από άλλες γλώσσες προγραμματισμού όπως C, shell programming, AWK και sed. Ιδέα :  Υπάρχουν περισσότεροι από ένας τρόποι για να κάνεις κάτι  Τα εύκολα πράγματα γίνονται εύκολα και τα δύσκολα γίνονται εφικτά.

3 Ιστορική Αναδρομή Σχεδιάστηκε από τον Larry Wall. Δημιουργία σε UNIX με σκοπό να κάνει πιο εύκολη τη συγγραφή report. 1 η έκδοση το η έκδοση το μηχανή που υποστήριζε καλύτερες κανονικές εκφράσεις. 3 η έκδοση το προσθήκη για υποστήριξη binary data streams. 4 η έκδοση το 1991 – χωρίς ιδιαίτερες αλλαγές, απλά για να ταυτίζεται με την πρώτη έκδοση του βιβλίου.(Programming Perl)

4 Ιστορική Αναδρομή 5 η έκδοση το 1994 – να μπορεί να εφαρμοστεί σε διάφορες πλατφόρμες. 6 η έκδοση ( νεότερη ) το 2000 – υποστήριξη καινούριων και παλιών γλωσσών προγραμματισμού. Επικράτησε η 5 η έκδοση, η οποία δέχεται συνεχώς επέκταση με διάφορα modules. CPAN (Comprehensive Perl Archive Network) βιβλιοθήκη η οποία περιέχει πάνω από 14,800 software modules γραμμένα σε Perl.

5 Πλατφόρμες Κυρίως σε Αλλά και σε :   διάφορες εκδόσεις των

6 Δυνατότητες Τεράστιες δυνατότητες επεξεργασίας κειμένου ( λίστες και hash tables). Υποστηρίζει πολλούς τρόπους προγραμματισμού. Σύνταξη παρόμοια με τη C. Built-in support για επεξεργασία κειμένου ( όπως στο shell programming).

7 Δυνατότητες Διαχειρίζεται από μόνη της αναφορές στη μνήμη. Χρήση σε graphics programming, system administration, network programming, εφαρμογές που απαιτούν Βάσεις Δεδομένων, CGI programming on the web. Σημαντική ιδιότητα είναι το Portability, έτσι που να μπορεί να μεταφέρεται.

8 Πλεονεκτήματα Άπειρος χώρος για δεδομένα Γλώσσα ευέλικτη, προσαρμόζεται εύκολα και μεταφέρεται σε πολλές μηχανές. Μικρό κόστος στην επίδοση Απαλλάσσει από βαρετές δουλειές όπως οι ορισμοί μεταβλητών και ο καταμερισμός μνήμης. Επεξεργασία string με τεράστια υποστήριξη από κανονικές εκφράσεις. Δυνατότητα να κρατούμε κάποια modules τα οποία μπορούμε να χρησιμοποιήσουμε αργότερα.

9 Μειονεκτήματ α Γράφοντας ένα script το οποίο υποστηρίζει κάποια modules της CPAN πιθανόν να μην τρέχουν σε άλλο υπολογιστή. Δεν μπορείς εύκολα να δημιουργήσεις binary images(exe) από ένα αρχείο Perl. Δεν μπορείς να έχεις τον έλεγχο στις διάφορες δομές δεδομένων όπως τα strings. Επειδή η Perl συνδυάζει πολλές γλώσσες προγραμματισμού όσο καλά οργανωμένο και να είναι ένα script πιθανόν κάποιος μην το καταλάβει.

10 Εγκατάσταση Παίρνουμε το source code ή το binary από την σελίδα :  Υπάρχουν αρκετά διαθέσιμα binaries για Unix/Linux, Windows και Macintosh Στις περισσότερες πλατφόρμες των Linux και των UNIX δεν χρειάζεται να γίνει εγκατάσταση γιατί είναι ήδη εγκατεστημένη (by default).

11 Πηγαίος Κώδικας και Μεταγλώττιση Πηγαίος Κώδικας και Μεταγλώττιση Hello World!!!( version 1 ) Κώδικας : 1:print “=>Hello World!!!\n"; Μεταγλώττιση : $perl hello.pl =>Hello World!!!

12 Πηγαίος Κώδικας και Μεταγλώττιση Πηγαίος Κώδικας και Μεταγλώττιση Hello World!!!( version 2 ) Κώδικας : 1:#!/usr/bin/perl 2:print “=>Hello World!!!\n"; Μεταγλώττιση : $chmod 777 hello.pl $./hello.pl =>Hello World!!!

13 Παρουσίαση Δυνατοτήτων (Variables) Scalars ($name):  Μεταβλητές διαφόρων τύπων ( αριθμός ή string) Arrays  Λίστα από scalars, τα περιεχόμενα του γίνονται indexed από 0. Αν θέλεις να ανακτήσεις ένα συγκεκριμένο στοιχείο του πίνακα μπορεί να γίνει : print $name[0]; Hashes (%name):  Περιέχουν ένα κλειδί και την τιμή του.  Ορισμός : %name=(``June``=>30, ``July``=>31)

14 Παρουσίαση Δυνατοτήτων ( Ροές Ελέγχου ) if() { … } elsif() {... } while () {... } do {... } while(); for(a;b;c;) {... } foreach $var {... } last next 0, “0”, and “ ” == FALSE Οτιδήποτε άλλο θεωρείται TRUE

15 Παρουσίαση Δυνατοτήτων ( Τελεστές )

16 Παρουσίαση Δυνατοτήτων ( Παράδειγμα ) #!/usr/bin/perl Δήλωση ότι είναι πρόγραμμα Perl και ανακατεύθυνση με το σωστό path για εκτέλεση. use IO::Socket; Ενσωμάτωση Module για χρήση διαφόρων μεθόδων.

17 Παρουσίαση Δυνατοτήτων ( Παράδειγμα ) if ($#ARGV != 0) { print “Give me the depth\n"; exit; } Ο χρήστης πρέπει να δώσει ακριβώς ένα command line argument ( το εκτελέσιμο αρχείο δεν υπολογίζεται σαν command line argument), αλλιώς τερματίζει το πρόγραμμα

18 Παρουσίαση Δυνατοτήτων ( Παράδειγμα ) 1. $start = "www.ucy.ac.cy"; 2. %visited = ( $start, 0 ); Στην γραμμή 1 φαίνεται η αρχικοποίηση μιας μεταβλητής Στην γραμμή 2 βάζει μέσα στο hash(visited) την start με value 0

19 Παρουσίαση Δυνατοτήτων ( Παράδειγμα ) foreach $page } Με την πιο πάνω εντολή για κάθε στοιχείο του πίνακα selides εκτελεί τον κώδικα μέσα στα brackets. while (defined($line = )) {... } Η πιο πάνω εντολή είναι ένα while() όπως και στην C, η μέθοδος defined() επιστρέφει 0 στην περίπτωση που το line είναι κενό.

20 Παρουσίαση Δυνατοτήτων ( Παράδειγμα ) open(LINKS, ">>links$depth.dat"); Εντολή open() με την οποία ανοίγουμε ένα αρχείο για read, write, append. ( παρόμοιο με την C) close(LINKS); Εντολή close() με την οποία κλείνουμε ένα αρχείο όταν τελειώσουμε με την επεξεργασία του. ( παρόμοιο με την C)

21 Παρουσίαση Δυνατοτήτων ( Παράδειγμα ) 1. $socket = IO::Socket::INET->new(PeerAddr => $lala,PeerPort => 80,Proto => 'tcp',Type => SOCK_STREAM) 2. or {print LINKSS "$page\n"}; 3. unless ($socket) { next }; 4. print $socket "GET /$ext HTTP/1.0\n\n"; Εκτελώντας την μέθοδο new από την βιβλιοθήκη IO::Socket ανοίγουμε ένα tcp socket. Εάν το socket δεν πάρει τιμή τότε εκτελείτε το or και το unless. Στην γραμμή 4 βλέπουμε μια εντολή print η οποία τυπώνει μέσα στο socket το αποτέλεσμα της GET.

22 Παρουσίαση Δυνατοτήτων ( Παράδειγμα ) 1. $test =~ s/\/\w+\.html//; 2. $la = $test. $la; 3. $la !~ /www\./ Στην γραμμή 1 βλέπουμε την εντολή =~ που σε συνδυασμό με την s κάνει την ίδια λειτουργία με την εντολή sed στο bash. Στην γραμμή 2 βλέπουμε την εντολή concatenate(.) η οποία συνενώνει 2 strings σε ένα. Στην γραμμή 3 ψάχνει εάν δεν υπάρχει το pattern στα δεξιά της !~ μέσα στην μεταβλητή στα αριστερά.

23 Παρουσίαση Δυνατοτήτων ( Παράδειγμα ) Στην γραμμή 1 βάζει την μεταβλητή start στο τέλος του πίνακα selides. Στην γραμμή 2 βγάζει από το τέλος του πίνακα.

24 Συμπεράσματα Αρκετά πιο εύκολη υλοποίηση Αρκετά πιο μικρός κώδικας Πιο γρήγορη εκτέλεση Καμία ιδιομορφία στον κώδικα όπως έχει το Bash. Μπορούμε να ενσωματώσουμε στον κώδικα μας εντολές από το bash. Πιο κοντά σε high-level γλώσσα.

25 Συμπεράσματα Πολύ βοηθητικός ο τρόπος που είναι δηλωμένα τα variables της. Αν και δεν είχαμε προηγούμενες γνώσεις μάθαμε πολύ εύκολα να γράφουμε κώδικα σε Perl. Στον ίδιο χρόνο που χρειαστήκαμε για να υλοποιήσουμε το 20% της άσκησης 2 σε bash, υλοποιήσαμε το 90% σε κώδικα Perl.

26 Βιβλιογραφία Programming in Perl 2 edition – Covers Perl 5, Larry Wall, Tom Christiansen & Randal L. Schwartz. n/littperl/perlreg.htm#op_m

27 Ευχαριστούμε για την προσοχή σας !!! Απορίες ???


Κατέβασμα ppt "Scripting Language Programming PERL Παρουσιάζουν : Σελεάρη Φρόσω Διαβαστός Ανδρέας Ιωνά Πάρης."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google