Εισαγωγή στην Perl μέρος πρώτο!

Γενικά θέματα για τις γλώσσες προγραμματισμού που δεν καλύπτονται από τις άλλες περιοχές της κατηγορίας.

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
Άβαταρ μέλους
stevebat
Script Master
Δημοσιεύσεις: 307
Εγγραφή: 05 Αύγ 2009 15:54
Επικοινωνία:

Εισαγωγή στην Perl μέρος πρώτο!

Δημοσίευση από stevebat » 14 Αύγ 2010 15:39

Περιγραφή

Αυτό το βοήθημα γράφτηκε για να σας δώσει μια σφαιρική άποψη για την γλώσσα (προγραμματισμού PERL). Σκοπός του είναι να καθοδηγήσει του χρηστές οι όποιοι είναι καινούργιοι στη γλώσσα και δίνει αρκετές πληροφορίες για το τι κάνει η PERL και πως θα γράψετε τα δικά σας script

Τι είναι η PERL;

Η PERL είναι μια γλώσσα γενικού σκοπού, αρχικά δημιουργήθηκε για να χειρίζεται τα κείμενα και σήμερα χρησιμοποιείτε για πολλούς σκοπούς συμπεριλαμβανομένων και των system administration, ανάπτυξη εφαρμογών, προγραμματισμός δικτύων, GUI development και πολλά αλλά
Σκοπός της γλώσσας είναι να είναι πρακτική και όχι όμορφη (δηλαδή: κομψή μικρή και όμορφα δομημένη) Το καλό με αυτή τη γλώσσα είναι ότι υποστηρίζει και διαδικαστικό και αντικειμενοστραφή (object-oriented (OO)) προγραμματισμό.
Τα αρχεία της τελειώνουν σε .pl

Τρέχοντας προγράμματα PERL

Για να τρέξετε ένα πρόγραμμα από τo Unix command line πατήστε

Κώδικας: Επιλογή όλων

1.	    perl progname.pl
Διαφορετικά βάλτε αυτό στην αρχή του script σας

Κώδικας: Επιλογή όλων

1.	    #!/usr/bin/env perl
... και τρέξτε το σαν /path/to/script.pl. Φυσικά πρέπει να είναι executable, για αυτό chmod
σε 755 script.pl (στα Unix).

( Μπορείτε επίσης να βάλετε κατευθείαν το path στο perl script σας σαν #!/usr/bin/perl ).

Για περισσότερες πληροφορίες συμπεριλαμβανόμενου και για άλλες πλατφόρμες όπως windows επισκεφτείτε http://perldoc.perl.org/perlrun.html.

Ασφάλεια

Η PELR από την αρχή της είναι πολύ "συγχωρητική" δηλαδή δεν βγάζει εύκολα errors για αυτό είναι καλό στην αρχή κάθε προγράμματος να βάζουμε τα ακόλουθα, και τα 3

(Για την function use επισκεφτείτε http://perldoc.perl.org/functions/use.html)

Κώδικας: Επιλογή όλων

1.	    #!/usr/bin/perl
2.	    use strict;
3.	    use warnings;
Οι γραμμές 2 και 3 ζητούν από την perl να πιάσει γνωστά λάθη στον κώδικα σας. Ελέγχουν διαφορετικά πράγματα για αυτό χρειάζονται και τα 2.
Το use strict; θα σταματήσει την εκτέλεση του κώδικα σας όταν βρεθεί κάποιο λάθος ενώ το use warnings; θα συνεχίσει την εκτέλεση αλλά θα σας βγάλει ένα warning. Για περισσότερα επισπευτείτε strict(http://perldoc.perl.org/strict.html) και warnings(http://perldoc.perl.org/warnings.html).

Βασική σύνταξη

Ένα PERL script αποτελείται από μια η πολλές εντολές οι οποίες είναι γραμμένες απλά και δεν χρειάζεται main() function η τίποτα αντίστοιχο για να τρέξουν.
Όπως στις περισσότερες γλώσσες προγραμματισμού έτσι και στην Perl οι εντολές τελειώνουν σε ;(ερωτηματικό ελληνικό η άνω τέλια για τα αγγλικά)

(Για την function print επισκεφτείτε http://perldoc.perl.org/functions/print.html)

Κώδικας: Επιλογή όλων

Π.χ.    print "Hello, world";
Για να βάλετε σχόλια στον κώδικα πρέπει να βάλετε στην αρχή δίεση (#)

Κώδικας: Επιλογή όλων

Π.χ.    # Να ένα σχόλιο
Η σπάταλη χώρου είναι περιττή

Κώδικας: Επιλογή όλων

Π.χ.
1.	    print
2.	        "Hello, world"
3.	        ;
…Εκτός και αν είναι μέσα σε quoted strings

Κώδικας: Επιλογή όλων

1.	    # αυτό θα σπάσει την γραμμή στη μέση
2.	    print "Hello
3.	        world";
Διπλά quotes η μονά quotes κάνουν την ίδια δουλεία όταν είναι να εμφανίσουμε μόνο γράμματα:

Κώδικας: Επιλογή όλων

1.	    print "Hello, world";
2.	    print 'Hello, world';
…Αλλά μόνο τα διπλά quotes εμφανίζουν το περιεχόμενο μιας μεταβλητής και ειδικούς χαρακτήρες(\n)

Κώδικας: Επιλογή όλων

1.	    print "Hello, $name\n";     # δουλεύει τέλια
2.	    print 'Hello, $name\n';     # εμφανίζει Hello, $name\n
Τα νούμερα δεν χρειάζονται quotes:

Κώδικας: Επιλογή όλων

1.	    print 42;
Μπορείτε να χρησιμοποιήσετε και παρενθέσεις για functions' arguments η να τις παραλείψετε όπως σας αρέσει πιο καλά. Είναι μόνο απαραίτητες περιστασιακά για να διευκρινίσετε θέματα προτεραιότητας

Κώδικας: Επιλογή όλων

1.	    print("Hello, world\n");
2.	    print "Hello, world\n";
Περισσότερες πληροφορίες για την σύνταξη θα τις βρείτε http://perldoc.perl.org/perlsyn.html.

Το βοήθημα αυτό είναι βασισμένο στην επίσημη ιστοσελίδα της perl και αποτελείται από 3 μέρη στο τελευταίο μέρος θα σας δώσω κάποια λινκ για να δείτε στα αγγλικά δυστυχώς, συγχωρέστε με αν έκανα κάποια λάθη στην σύνταξη και δεν καταλαβαίνετε το βοήθημα

Για το part 2 http://www.freestuff.gr/forums/viewtopic.php?p=483925

TO BE CONTINUED…
Τελευταία επεξεργασία από το μέλος stevebat την 15 Αύγ 2010 16:35, έχει επεξεργασθεί 4 φορές συνολικά.

Άβαταρ μέλους
Basilakis
PHP Moderator
Δημοσιεύσεις: 8574
Εγγραφή: 17 Νοέμ 2003 13:03
Τοποθεσία: Womans' Brain
Επικοινωνία:

Εισαγωγή στην Perl μέρος πρώτο!

Δημοσίευση από Basilakis » 14 Αύγ 2010 17:00

Βοήθημα! :)

Χαρά μου η Perl.. Πρώτη γλώσσα που ασχολήθηκα..

Άβαταρ μέλους
stevebat
Script Master
Δημοσιεύσεις: 307
Εγγραφή: 05 Αύγ 2009 15:54
Επικοινωνία:

Εισαγωγή στην Perl μέρος πρώτο!

Δημοσίευση από stevebat » 14 Αύγ 2010 17:13

Basilakis έγραψε:Βοήθημα! :)

Χαρά μου η Perl.. Πρώτη γλώσσα που ασχολήθηκα..
Μαζί σου και εμένα μου αρέσει πολύ η perl. Από 'τι έχω ακούσει έχει πάρει κάποια στοιχεία και η php από την Perl αλλά δεν είμαι σίγουρος

Άβαταρ μέλους
Connor MacLeod
Honorary Member
Δημοσιεύσεις: 13372
Εγγραφή: 07 Φεβ 2005 13:36
Τοποθεσία: Κοζάνη
Επικοινωνία:

Εισαγωγή στην Perl μέρος πρώτο!

Δημοσίευση από Connor MacLeod » 14 Αύγ 2010 21:50

Ένα PERL script αποτελείτε...
Δηλαδή ειναι scripting language η perl?

Να και κατι που δεν το ήξερα..
Meizu MX5(5.5"/8Core/3GB/32GB/Sony IMX220 20.7MP)
PC 27'' (3770@3.4/16GB/560SE/500GB SATA3/650W S12G)
Mac mini (2.5GHz/8GB/6630/90GB GorsairGT)

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

Εισαγωγή στην Perl μέρος πρώτο!

Δημοσίευση από korgr » 14 Αύγ 2010 23:15

ε ρε αθανατες εποχες με cgi-bin
Εσβησε ομως στη σκια της php...

Άβαταρ μέλους
stewas
Script Master
Δημοσιεύσεις: 436
Εγγραφή: 25 Αύγ 2009 13:48
Τοποθεσία: Πάργα - Αθήνα και Ιωάννινα Πλέον
Επικοινωνία:

Εισαγωγή στην Perl μέρος πρώτο!

Δημοσίευση από stewas » 14 Αύγ 2010 23:42

Connor MacLeod έγραψε:
Ένα PERL script αποτελείτε...
Δηλαδή ειναι scripting language η perl?

Να και κατι που δεν το ήξερα..
πάνω λέει ότι είναι Object Oriented. Αλλα δεν ξέρω τελικά τι είναι

Άβαταρ μέλους
Connor MacLeod
Honorary Member
Δημοσιεύσεις: 13372
Εγγραφή: 07 Φεβ 2005 13:36
Τοποθεσία: Κοζάνη
Επικοινωνία:

Εισαγωγή στην Perl μέρος πρώτο!

Δημοσίευση από Connor MacLeod » 15 Αύγ 2010 00:20

κι εγω OO την ξερω γιαυτο παραξενεύτηκα με αυτό π έγραψες.
Meizu MX5(5.5"/8Core/3GB/32GB/Sony IMX220 20.7MP)
PC 27'' (3770@3.4/16GB/560SE/500GB SATA3/650W S12G)
Mac mini (2.5GHz/8GB/6630/90GB GorsairGT)

Άβαταρ μέλους
stevebat
Script Master
Δημοσιεύσεις: 307
Εγγραφή: 05 Αύγ 2009 15:54
Επικοινωνία:

Εισαγωγή στην Perl μέρος πρώτο!

Δημοσίευση από stevebat » 15 Αύγ 2010 00:26

εγώ ξέρω ότι είναι και scripting http://en.wikipedia.org/wiki/Perl

Άβαταρ μέλους
stewas
Script Master
Δημοσιεύσεις: 436
Εγγραφή: 25 Αύγ 2009 13:48
Τοποθεσία: Πάργα - Αθήνα και Ιωάννινα Πλέον
Επικοινωνία:

Εισαγωγή στην Perl μέρος πρώτο!

Δημοσίευση από stewas » 15 Αύγ 2010 00:27

Connor MacLeod έγραψε:κι εγω OO την ξερω γιαυτο παραξενεύτηκα με αυτό π έγραψες.
εγω δεν εγραψα τίποτα :P

Άβαταρ μέλους
soteres2002
S. & H. Moderator
Δημοσιεύσεις: 1524
Εγγραφή: 05 Μαρ 2004 22:17
Τοποθεσία: Ιωάννινα

Εισαγωγή στην Perl μέρος πρώτο!

Δημοσίευση από soteres2002 » 15 Αύγ 2010 00:30

Βασικά είναι ΜΟΝΟ scripting language, όχι και.

@korgr: δεν νομίζω πως έχει σβήσει γενικά. Στον προγραμματισμό για το web ίσως ναι αν και ακόμα πολοί προγραμματιστές γράφουν Perl. Σε tools για system administration είναι ακόμα πρωτοπόρα, αφού έχει τη μεγαλύτερη συλλογή από extensions (CPAN). Η ΡΗΡ από την άλλη δεν σχεδιάστηκε για τέτοιες δουλειές και είναι ανάπηρη σε σχέση με τις ικανότητες της Perl. Από την άλλη και το PHP-GTK για desktop applications ήταν και αυτό μια αποτυχία... Δεν ξέρω αν πλέον το συντηρεί κανείς ακόμα...
Τελευταία επεξεργασία από το μέλος soteres2002 την 15 Αύγ 2010 00:34, έχει επεξεργασθεί 1 φορά συνολικά.

Άβαταρ μέλους
stewas
Script Master
Δημοσιεύσεις: 436
Εγγραφή: 25 Αύγ 2009 13:48
Τοποθεσία: Πάργα - Αθήνα και Ιωάννινα Πλέον
Επικοινωνία:

Εισαγωγή στην Perl μέρος πρώτο!

Δημοσίευση από stewas » 15 Αύγ 2010 00:33

soteres2002 έγραψε:Βασικά είναι ΜΟΝΟ scripting language, όχι και.
στην wikipedia στο λινκ που παρατίθεται πιο πάνω την αναφέρει και object-oriented

Άβαταρ μέλους
soteres2002
S. & H. Moderator
Δημοσιεύσεις: 1524
Εγγραφή: 05 Μαρ 2004 22:17
Τοποθεσία: Ιωάννινα

Εισαγωγή στην Perl μέρος πρώτο!

Δημοσίευση από soteres2002 » 15 Αύγ 2010 00:36

Μα το object-oriented δεν έχει να κάνει με το αν είναι scripting ή compiled γλώσσα. Το object-oriented είναι programming paradigm. Το scripting language σου δηλώνει ότι είναι διερμηνευόμενη γλώσσα. Δεν υπάρχει συσχέτιση από το ένα στο άλλο.

Άβαταρ μέλους
stewas
Script Master
Δημοσιεύσεις: 436
Εγγραφή: 25 Αύγ 2009 13:48
Τοποθεσία: Πάργα - Αθήνα και Ιωάννινα Πλέον
Επικοινωνία:

Εισαγωγή στην Perl μέρος πρώτο!

Δημοσίευση από stewas » 15 Αύγ 2010 00:42

διορθώστε με αν κάνω λάθος αλλά μία γλώσσα που είναι oo σημαίνει οτι είναι αντικειμενοστραφής ενώ μια scripting γλώσσα αφορά σεναριακή γραφή κώδικα και αυτό δεν εχει σχέσει με το αν μεταγλωτίζεται η αν διερμηνεύεται.

Άβαταρ μέλους
soteres2002
S. & H. Moderator
Δημοσιεύσεις: 1524
Εγγραφή: 05 Μαρ 2004 22:17
Τοποθεσία: Ιωάννινα

Εισαγωγή στην Perl μέρος πρώτο!

Δημοσίευση από soteres2002 » 15 Αύγ 2010 00:57

stewas έγραψε:διορθώστε με αν κάνω λάθος αλλά μία γλώσσα που είναι oo σημαίνει οτι είναι αντικειμενοστραφής ενώ μια scripting γλώσσα αφορά σεναριακή γραφή κώδικα και αυτό δεν εχει σχέσει με το αν μεταγλωτίζεται η αν διερμηνεύεται.
Μία γλώσσα που είναι ΟΟ μπορεί να χρησιμοποιηθεί και για προγράμματα τύπου script τόσο και για προγράμματα που μεταγλωττίζονται σε native code ή managed code ή ό,τι θές... Η σεναριακή γραφή κώδικα δεν αφορά το προγραμματιστικό στυλ αλλά το σκοπό της γλώσσας: δηλαδή να γράφει κανείς σενάρια... Και στις scripting γλώσσες μπορείς να γράψεις και OO και procedural style. Σου ξαναλέω και πάλι δεν υπάρχει σχέση μεταξύ scripting και ΟΟ. Άλλο είναι το ένα και άλλο το άλλο...

Και για να γίνω πιο σαφής...

Το scripting language ή το imperative language (όπως η C) πχ δηλώνει την τεχνολογία κάτω από την οποία δουλεύει η γλώσσα σε τεχνικό επίπεδο. Δηλαδή υπάρχουν διάφορες τεχνικές για να υλοποιηθεί μια γλώσσα: είτε με διερμηνέα, είτε native code, είτε με εικονική μηχανή (δηλαδή εξομοίωση).

Το αν μια γλώσσα υποστηρίζει OO-programming ή procedural ή functional ή πρόσθεσε εσύ τι άλλο αφορά σε θεωρητικό βαθμό την γλώσσα: τη γραμματική της, το συντακτικό και τη σημασιολογία της (grammar, syntax, semantics).

Θέλω δηλαδή να σου κάνω σαφές ότι οι 2 έννοιες αναφέρονται σε διαφορετικά πράγματα.
Τελευταία επεξεργασία από το μέλος soteres2002 την 15 Αύγ 2010 01:05, έχει επεξεργασθεί 3 φορές συνολικά.

Άβαταρ μέλους
stewas
Script Master
Δημοσιεύσεις: 436
Εγγραφή: 25 Αύγ 2009 13:48
Τοποθεσία: Πάργα - Αθήνα και Ιωάννινα Πλέον
Επικοινωνία:

Εισαγωγή στην Perl μέρος πρώτο!

Δημοσίευση από stewas » 15 Αύγ 2010 01:01

οκ ας το θεωρήσουμε αυτό δεκτό. εκτός από scripting language τι άλλο υπάρχει?

Απάντηση

Επιστροφή στο “γλώσσες προγραμματισμού - γενικά”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 2 επισκέπτες