H Perl είναι μια υψηλού επιπέδου (high-level), δυναμική γλώσσα προγραμματισμού 3ης γενιάς για προστακτικού τύπου προγραμματισμό. To high level σημαίνει πως ο χρήστης (προγραμματιστής) χρησιμοποιεί περισσότερα στοιχεία πραγματικής γλώσσας (λέξεις, φράσεις) για να προγραμματίσει αντί για μια low-level διαδικασία όποτε τα προγράμματα έχουν περισσότερα στοιχεία "γλώσσας μηχανής (Η/Υ)" δηλαδή αριθμούς, δυαδικούς κανόνες κλπ.
H Perl δημιουργήθηκε από τον Larry Wall το 1987 με αρχικό σκοπό την ευκολότερη σύνταξη αναφορών κατά τη διενέργεια προγραμματικών διαδικασιών (report processing).
Χρησιμοποιείται ευρέως στη βιολογία γιατί παρέχει μεγάλες δυνατότητες επεξεργασίας κειμένου χωρίς τους περιορισμούς μνήμης των τυπικών εργαλείων του UNIX από τα οποία προέρχεται (sed, awk, shellscripting sh). Είναι ιδανική για τον χειρισμό μεγάλων αρχείων ομοιόμορφου κειμένου (π.χ. αλληλουχιών) αλλά και γενικότερα μορφών δεδομένων στα οποία οι παρεμβάσεις που θέλουμε να κάνουμε είναι σε επίπεδο χαρακτήρων (π.χ. αναζητήσεις "λέξεων", αντικαταστάσεις στοιχείων κειμένου σε μεγάλη/πλήρη κλίμακα) κλπ.
Λόγω της προσαρμοστικότητας, της ευελιξίας της και της ευκολίας χρήσης της, η Perl ονομάζεται το “Ελβετικό αλυσοπρίονο των Γλωσσών Προγραμματισμού” (swiss chainshaw).
Γιατί είναι απλή στη χρήση. Αρκεί ένας επεξεργαστής κειμένου και ένα απλό λειτουργικό περιβάλλον (DOS, UNIX)
Eγκαθιστώντας την Perl
1. Σε συστήματα Linux είναι προ-εγκατεστημένη. Απλώς γράψτε:
> which perl
στη γραμμή εντολών (shell) για να το επιβεβαιώσετε και
> perl -v
για να δείτε την έκδοση που "τρέχει" το σύστημά σας.
2. Σε συστήματα Mac η Perl είναι επίσης προ-εγκατεστημένη
3. Σε συστήματα Windows δεν έχετε παρά να πάτε εδώ:
https://www.perl.org/get.html
και να κατεβάσετε την αντίστοιχη έκδοση (Αctive-State ή Strawberry δεν διαφέρουν για τις ανάγκες του μαθήματος)
Η γραμμή εντολών σε συστήματα Unix/Linux είναι ο βασικός τρόπος με τον οποίον "τρέχουμε" την εφαρμογή της Perl. Στα Windows υπάρχει η δυνατότητα εκτέλεσης προγραμμάτων (στο εξής scripts) της Perl με "παραθυρικό" τρόπο (κάνοντας δηλαδή click σε εικονίδια) αλλά δεν θα την εξετάσουμε καθώς είναι πολύ κακή πρακτική και δεν επιτρέπει τον απαιτούμενο έλεγχο. Για το λόγο αυτό θα χρησιμοποιήσουμε το σύστημα DOS (command prompt) των windows.
To DOS. Είναι ξεπερασμένο ως λειτουργικό σύστημα αλλά το μόνο που μας επιτρέπει να "τρεξουμε" την Perl στα Windows όπως αρμόζει σε αληθινούς προγραμματιστές (και όχι απλώς χρήστες)
Για σκοπούς επίδειξης θα χρησιμοποιηθεί ένας online emulator : https://jamesfriend.com.au/pce-js/ibmpc-games/ αλλά εφόσον δουλεύετε σε windows μπορείτε απλώς να ανοίξετε το DOS.
- Στα Windows 7. Κάντε click Start και τυπώστε cmd
- Στα Windows 8. Στην οθόνη έναρξης τυπώστε cmd
Πριν αρχίσουμε
H συγγραφή ενός προγράμματος είναι ένας διαρκής κύκλος edit-run-revise δηλαδή "γράψε-τρέξε-διόρθωσε". Κατά τη διάρκεια της συγγραφής του προγράμματός δεν ξεχνάμε ποτέ:
α. Να σώζουμε περιοδικά τις αλλαγές που κάνουμε σε οποιοδήποτε αρχείο με την εντολή save.
β. Να βάζουμε σχόλια μέσα στο πρόγραμμα για να μπορούμε να παρακολουθούμε τι κάνουμε σε κάθε στάδιο του προγράμματος. Περισσότερα σε λιγο
2. Το πρώτο πρόγραμμα
Ας αρχίσουμε!
Χρειαζόμαστε, ανοιχτό ένα περιβάλλον γραμμής εντολών (ή το DOS) κι έναν επεξεργαστή κειμένου.
Ανοίγουμε έναν φάκελο με το όνομα μας όπου θα αποθηκέυσουμε το πρόγραμμά μας κι έναν επεξεργαστή κειμένου όπου θα το γράψουμε. Ανοίξτε λοιπόν το hello.pl και ξεκινήστε:
α. Η πρώτη γραμμή κάθε προγράμματος Perl πρέπει υποχρεωτικά να περιέχει αυτό:
#! /usr/bin/perl
H γραμμή αυτή λέει ουσιαστικά στον Η/Υ που θα βρει το πρόγραμμα με το οποίο θα "μεταφράσει" τις εντολές που ακολουθούν. Το πρόγραμμα αυτό είναι ο "μεταφραστής" της Perl (Perl Interpreter) και βρίσκεται στο φάκελο με τα binary executables (τα εκτελεσιμα αρχεία του συστήματος) με το όνομα perl (/usr/bin/perl).
Αμέσως κάτω από αυτήν την πρώτη γραμμή θα ήταν καλό να προσθέσουμε τη γραμμή:
use warnings;
Η γραμμή αυτή λέει στην Perl να αναφέρει στην οθόνη μηνύματα προειδοποίησης όταν κάτι δεν πάει καλά. Θα δείτε στο μέλλον πως είναι ιδιαίτερα χρήσιμο για να εντοπίζουμε λάθη στον κώδικα κατά την εκτέλεσή του. Γενικός κανόνας λοιπόν όλα τα προγράμματά μας να ξεκινούν έτσι:
#! /usr/bin/perl
use warnings;
β. Στις επόμενες γραμμές θα γράψουμε κάποια σχόλια. Τα σχόλια, όπως είδαμε και πιο πάνω είναι απαραίτητα για να μας βοηθούν να καταλάβουμε τι περιέχει το πρόγραμμα, τι input χρειάζεται, τι απαιτήσεις έχει, τι πρόβλημα αποπειράται να λύσει κλπ. Μην είστε φειδωλοί με τα σχόλια γιατί ακόμα κι αν κανείς δεν χρειαστεί να τρέξει το πρόγραμμά σας εκτός από εσάς, θα χρειαστεί πολλές φορές εσείς οι ίδιοι να ξαναθυμηθείτε τι κάνει. Τα σχόλια βοηθούν πάντα. Τα σχόλια εισάγονται γενικά με το σύμβολο "#" στην αρχή μιας γραμμής. Οτιδήποτε ξεκινά με "#" δεν μεταφράζεται ως εντολή από τον interpreter και συνεπώς αποτελεί μόνο σχόλιο για αυτόν που διαβάζει το "σώμα" του προγράμματος. Εισάγετε το παρακάτω σχόλιο στη δεύτερη γραμμή του προγράμματός σας:
# This is my first Perl script
αναλόγως μπορείτε να προσθέσετε κάποια επιπλέον σχόλια π.χ.:
# Ιt prints a simple message on the screen
γ. Στη συνέχεια θα προσθέσουμε την πρώτη μας εντολή στο πρόγραμμα. Θα είναι μια απλούστατη εντολή που θα λέει στην Perl να τυπώσει ένα μήνυμα στην οθόνη:
print "Hellow World!\n";
Η συγκεκριμένη εντολή συνίσταται στην εντολή "print" που είναι η βασική εντολή εκτύπωσης της Perl ακολουθούμενης από τη φράση "Hello World!" η οποία δίνεται μέσα σε διπλά εισαγωγικά. Προσέξτε δύο επιπλέον στοιχεία: 1. Το \n που μπαίνει μέσα στα διπλά εισαγωγικά αντιστοιχεί στην οδηγία εκτύπωσης αλλαγής γραμμής (\n=new line) και είναι αυτή που λέει στην Perl να μην τυπώσει απλώς το "Ηello World!" αλλά αμέσως μετά να αλλάξει γραμμή και να αναμένει οδηγίες σε αυτήν την επόμενη γραμμή. 2. Το ";" στο τέλος της εντολής, που είναι απαραίτητο για κάθε εντολή που γράφουμε. Θα πρέπει να το βάζουμε στο τέλος κάθε γραμμής κώδικα αλλιώς θα προκύπτει σφάλμα κατά την εκτέλεση.
δ. Κλείσιμο του προγράμματος. Αυτό δεν είναι τυπικά απαραίτητο αλλά είναι καλό στο τέλος κάθε προγράμματος να υπάρχει η γραμμή
exit;
η οποία και σηματοδοτεί το τέλος της εκτέλεσής του. Με τον καιρό θα δείτε πως είναι χρήσιμο να υπάρχει μια τέτοια γραμμή που να διαχωρίζει το κυρίως πρόγραμμα από δευτερεύοντα προγράμματα, υπορουτίνες, σχόλια τέλους κλπ.
Αφού έχουμε τελείωσει το πρόγραμμα δεν έχουμε παρά να το σώσουμε με το όνομα του (hello.pl). Ιδιαίτερη προσοχή εδώ καθώς χρησιμοποιώντας τον editor το πιο πιθανό είναι να χρησιμοποιηθεί το default extension (.txt) για τα αρχεία κειμένου. Αυτό πρέπει να αποφευχθεί καθώς τα προγράμματα της Perl πρέπει να είναι μεν αρχεία κειμένου αλλά θα πρέπει να κωδικοποιούνται ως perl scripts με την κατάληξη .pl. Για να εξασφαλίσετε ότι το αρχείο θα σώζεται ως τέτοιο πρέπει να κάνετε την αποθήκευση γράφοντας το όνομα του αρχείου μέσα σε διπλά εισαγωγικά στο πεδίο save us του editor που χρησιμοποιείτε. Η διαδικασία είναι:
> File > Save as > "hello.pl"
Eκτελώντας το πρόγραμμα.
Δεν έχουμε πλέον παρά να επιστρέψουμε στο DOS και αφού πλοηγηθούμε στο φάκελο που περιέχει το πρόγραμμα να τυπώσουμε στην γραμμή εντολών την εντολη εκτέλεσης του προγράμματος:
perl hello.pl
και να πατήσουμε enter
Στην οθόνη εμφανίζεται το μήνυμά μας και έχουμε επιτυχώς γράψει, αποθηκεύσει και εκτελέσει το πρώτο μας πρόγραμμα σε Perl.