00. The "art" of Programming

Στόχοι του μαθήματος

- Εισαγωγή στην ένοια του προγραμματισμού

- Παραδείγματα από την βιολογική "καθημερινότητα" όπου ο προγραμματισμός μπορεί να φανεί χρήσιμος

- Βασικά χαρακτηριστικά της Perl. Γιατί επιλέγουμε την Perl για αυτό το μάθημα;

- Κατεβάζοντας, εγκαθιστώντας και τρέχοντας την Perl

- Βασικές εντολές της γραμμής εντολών

- Γράφοντας ένα πρώτο πρόγραμμα στην Perl

Α. Εισαγωγή στις έννοιες του προγραμματισμού

Τι είναι προγραμματισμός;

Τι σημαίνει; Η διαδικασία της συγγραφής, ελέγχου, διόρθωσης και συντήρησης του πηγαίου κώδικα ενός προγράμματος.

Και τι σημαίνει αυτό; Ουσιαστικά, είναι η επικοινωνία με μια μηχανή με σκοπό να την κάνουμε να μας κάνει τη δουλειά μας.

Τι μας χρειάζεται; Η μηχανή (υπολογιστής), ένα περιβάλλον (λειτουργικό σύστημα), ένα σύνολο κανόνων (γλώσσα προγραμματισμού) και το κυριότερο...

ένα πρόβλημα!

Τι είναι πρόγραμμα

Ένα σύνολο δομημένων εντολών μεσα σ' ενα εκτελέσιμο αρχείο που ο υπολογιστής μπορεί να διαβάσει και να εκτελέσει

Τι είναι λειτουργικό σύστημα/περιβάλλον; Η επιφάνεια επικοινωνίας μεταξύ χρήστη και υπολογιστή

Τι είναι γλώσσα προγραμματισμού; Το σύνολο των “γραμματικών” κανόνων που μας επιτρέπουν να επικοινωνήσουμε με τον υπολογιστή

Η τέχνη του Προγραμματισμού.

Για να επιλύσουμε ένα πρόβλημα μέσω προγραμματισμού χρειαζόμαστε:

  • α. Ένα σαφώς ορισμένο πρόβλημα. Είναι το βασικότερο στοιχείο για την επιτυχία μας στον προγραμματισμό. Θα πρέπει πριν ξεκινήσουμε καν να γράφουμε ακόμα και την πρώτη γραμμή προγράμματος να έχουμε ξεκάθαρα στο μυαλό μας τι θέλουμε να κάνουμε με αυτό το πρόγραμμα. Στην πορεία θα πρέπει να αποσαφηνίσουμε απολύτως όλα τα επιμέρους στάδια του προβλήματος. Είναι καλό να βλέπουμε τον Η/Υ σαν μια στρατιά από πολυ εργατικά αλλά "τέλεια αφελή" ρομπότ που μπορούν να κάνουν ακούραστα και αδιάκοπα οτιδήποτε τους ζητήσουμε αρκεί αυτό που ζητάμε να είναι τελείως ξεκάθαρο χωρίς καμιά αμφισημία και να βασίζεται σε καλά ορισμένες λειτουργίες.
  • β. Ένα καλά καθορισμένο input. Θα πρέπει να γνωρίζουμε με απόλυτη ακρίβεια την δομή των δεδομένων που θα παράσχουμε στο πρόγραμμα. Ένα ασαφές input δεν μας επιτρέπει να οργανώσουμε το πρόγραμμα σωστά, ενώ αντίθετα καλή γνώση του input και για τις πιθανές ιδιομορφίες του (π.χ. αν θα πρόκειται για πολύ μεγάλα αρχεία, αν η δομή του είναι διαφορετική στην αρχή και στο τέλος, αν περιέχει διακριτά τμήματα οργανωμένα σε στήλες, πίνακες κλπ) μας βοηθά και πρακτικά καθοδηγεί τη σύνταξη του προγράμματος
  • γ. Σωστός σχεδιασμός του προγράμματος (ψευδοκώδικας). Είναι η πραγματική τέχνη του προγραμματισμού και η βάση οποιουδήποτε προγράμματος. Η σύνταξη ενός προγράμματος είναι καλό να ξεκινά πάντα με ψευδοκώδικα. Ο ψευδοκώδικας είναι ουσιαστικά ένας τρόπος καταγραφής όλων των βασικών εντολών του προγράμματος με τη σωστή σειρά σε πραγματική γλώσσα (π.χ. η φράση "πάρε το α, πρόσθεσε σε αυτό το β και τύπωσε το α+β", είναι ο ψευδοκώδικας για την αριθμητική πράξη της πρόσθεσης). Από τη στιγμή που το πρόγραμμα μας είναι ολοκληρωμένο σε ψευδοκώδικα, τα υπόλοιπα είναι λεπτομέρειες. δεν απομένει παρά να χρησιμοποιήσουμε τις εντολές από τη γλώσσα προγραμματισμού της επιλογής μας για να το κωδικοποιήσουμε.
  • δ. Σαφώς καθορισμένο output. Ισχύει ότι και για το input. Θα πρέπει να σκεφτούμε καλά πως θέλουμε να επιστρέφονται τα αποτέλεσματα, σε ποια μορφή και έκταση, αν θα επιστρέφονται σε ένα αρχείο ή στην οθόνη αν θα είναι αναλυτικά ή περιληπτικά, αν πρόκειται να χρησιμοποιηθούν στη συνέχεια από άλλα προγράμματα κλπ.
  • ε. Υπολογισμός των απαιτήσεων του προγράμματος. Είναι καλό να γίνεται στις περιπτώσεις που σχεδιάζουμε καποιο πρόγραμμα για γενικότερη χρήση (και από άλλους χρήστες δηλαδή). Δεδομένου ότι τα συστήματα και οι προδιαγραφές τους διαφέρουν είναι καλό να γνωρίζουμε εξαρχής τα επίπεδα μνήμης που θα χρειαστεί ένα πρόγραμμα για να τρέξει, τη σχέση ταχύτητας επεξεργαστή και χρόνου εκτέλεσης κλπ. Είναι καλό να έχουμε ασφαλείς εκτιμήσεις για το πόση ώρα θα χρειαστεί να τρέξει ένα δεδομένο πρόγραμμα, με δεδομένο input σε ένα δεδομένο σύστημα (ταχύτητα CPU και μνήμη RAM).
  • *. Σκέψη/αυτοσχεδιασμός/έμπνευση. Στοιχεία που αποκτώνται με το χρόνο αλλά και με βάση το πηγαίο ταλέντο του καθενός. Πολλά στοιχεία προγραμματισμού έχουν να κάνουν με την επίλυση γρίφων, την πρωτότυπη αντιμετώπιση προβλημάτων και άλλα στοιχεία δημιουργικότητας που ο καθένας μας διαθέτει. Μην τα καταπιέζετε και κυρίως μην υποτιμάτε ποτέ τις δυνατότητές σας.

Στοιχεία ενός προγράμματος

  • Input. Τα δεδομένα που παρέχουμε στον υπολογιστή για την επίλυση ενός προβλήματος. (ένας αριθμός, πολλοί αριθμοί, μια αλληλουχία, πολλές αλληλουχίες...κ.ο.κ.)
  • Source Code. Πηγαίος κώδικας. Είναι το σύνολο των εντολών, της σύνταξης και των εξωτερικών προγραμμάτων που χρειάζονται για την εκτέλεση ενός προγράμματος από τον υπολογιστή.
  • Οutput. Tα δεδομένα που παρέχονται στο χρήστη από τον υπολογιστή μετά την ολοκλήρωση της εκτέλεσης του πηγαίου κώδικα.

Συστατικά μέρη του κώδικα -της γραμματικής δηλαδή- είναι:

  1. Οι σταθερές. Είναι στοιχεία που δεν μεταβάλλονται.
  2. Οι μεταβλητές. Είναι στοιχεία των οποίων την τιμή ορίζουμε εμείς, μπορούν να είναι (όπως και οι σταθερές) αριθμοί, σύμβολα, λέξεις, ολόκληρα κείμενα ή συνδυασμοί των παραπάνω.
  3. Οι Δομές Δεδομένων, Είναι οργάνωμένα σύνολα σταθερών ή μεταβλητών με συγκεκριμένη δομή, π.χ. πίνακες.
  4. Οι Συναρτήσεις. Έχουν ακριβώς την ίδια λογική των μαθηματικών συναρτήσεων. Πρόκειται δηλαδή για νοητικές κατασκευές που επιτελούν μετασχηματισμούς μεταβλητών με τη μορφή f(x)->y. Δέχονται δηλαδή μια μεταβλητή x (οι περισσότερες) και την μετατρέπουν στην y μέσω της εφαρμογής μιας σειράς κανόνων μετασχηματισμού. Εχουν την κύρια ιδιότητα ότι για το ίδιο x το y παραμένει πάντα το ίδιο (είναι δηλαδή μονοσήμαντες). Στις γλώσσες προγραμματισμού οι συναρτήσεις (functions) έχουν κυρίαρχο ρόλο και οι μεταβλητές που δέχονται δεν είναι αποκλειστικά αριθμοί. Έτσι υπάρχουν συναρτήσεις για κείμενο, συμβολοσειρές, πίνακες κλπ.
  5. Οι λογικές εκφράσεις. Είναι βασικά στοιχεία της ροής ενός προγράμματος και επιτελούν τις σημαντικές λειτουργίες "διακλαδώσεων", των εντολών εκείνων που αντιστοιχούν στις μαθηματικές ισότητες και τις ανισότητες. Οι λογικές εκφράσεις (π.χ. "ίσο με", "μεγαλύτερο από", "διαφορετικό από") μας επιτρέπουν να κάνουμε μια σειρά από πολύπλοκες δοκιμές μου είναι βασικές για την έναρξη, τη συνέχιση και τον τερματισμό διαδικασιών εντός του προγράμματος.
  6. Οι Δομές ελέγχου. Είναι τα στοιχεία της ροής του προγράμματος που δίνουν χαρακτήρα "επιλογής" διαδικασιών. Αντιστοιχούν σε λογικές διαδικασίες του τύπου: "Αν ισχύει το Α τότε κάνε το Β", ή "Αν το Β είναι ίσο με Χ, τότε μην κάνεις το Γ" κλπ.
  7. Οι Δομές επανάληψης. Είναι ίσως ο βασικότερος λόγος για τον οποίον προγραμματίζουμε. Τα περισσότερα προγράμματα γράφονται γιατί χρειαζόμαστε να κάνουμε μια σειρά από ακριβείς υπολογισμούς σε πλήθος που θα ήταν απαγορευτικό να κάνουμε μόνοι μας. Οι δομές επανάληψης κάνουν ακριβώς αυτό, επαναλαμβάντας μια διαδικασία όσες φορές χρειάζεται ή όσες φορές ζητήσουμε εμείς να γίνει.

Δοκιμάστε μόνοι σας. Ενα πρόγραμμα σε ψευδοκώδικα:

α. Σκεφτείτε πως θα γράφατε ένα πρόγραμμα που θα έπαιρνε έναν ακέραιο αριθμό Ν και θα υπολόγιζε το άθροισμα Σ=1+2+3....Ν. Πώς θα κάνατε το ίδιο αν αντί για περίοδο=1 η περίοδος της σειράς δινόταν σαν παράμετρος Μ (το άθροισμα σε αυτήν την περίπτωση είναι το Σ=1+(1+Μ)+(1+2Μ)+(1+3Μ)....Ν)

β. Να γράψετε τον ψευδοκώδικα για τον υπολογισμό του παραγοντικού γινομένου Ν! (Π=1*2*3....*Ν)

Β. Γιατί να προγραμματίζουμε;

Καθημερινά προβλήματα που μπορεί να αντιμετωπίσουμε

1. Σας δίνεται ένα αρχείο με δεδομένα αλληλουχιών (π.χ. από ένα πείραμα sequencing)

α) Να βρειτε πόσες αλληλουχίες περιέχονται στο αρχείο

β) Να υπολογίσετε το μήκος της κάθε αλληλουχίας

2. Σας δίνεται μια αλληλουχία και σας ζητείται:

α) Να υπολογίσετε το GC content (G+C%)

β) Να βρειτε την αντίστροφη-συμπληρωματική της (reverse complement)

γ) Να εντοπίσετε μέσα στην αλληλουχία συγκεκριμένα ολιγονουκλεοτιδικά μοτίβα π.χ. σημεία πρόσβασης περιοριστικών ενζύμων.

3. Σας δίνεται ένα αρχείο με δεδομένα γονιδιακής έκφρασης και ζητείται:

α) Να αναφέρετε (γρήγορα) τις 20 πιο υψηλές τιμές του αρχείο

β) Να εντοπίσετε το γονίδιο με την μεγαλύτερη διακύμανση στην τιμή έκφρασης (μεταξύ διαφορετικών συνθηκών)

Γ. Η γλώσσα προγραμματισμού Perl

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 δεν διαφέρουν για τις ανάγκες του μαθήματος)

Δ. "Τρεχοντας την Perl". Η γραμμή εντολών, το DOS και επεξεργαστές κειμένου

Η γραμμή εντολών σε συστήματα 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

Εντός του DOS η πλοήγηση γίνεται με εντολές που δίνονται απευθείας από το πληκτρολόγιο. Χρειάζεται να γνωρίζουμε κάποιες βασικές για να "πλοηγηθούμε" μεταξύ των φακέλων μας, να μπορούμε να αντιγράφουμε/μετονομάζουμε αρχεία κλπ.

  • Διευθύνσεις αρχείων : όνομα1/όνομα2/αρχείο.τυπος
  • Μετακίνηση σε φακέλους : cd διεύθυνση
  • Μετακίνηση στο μητρικό φάκελο: cd ..
  • Απεικόνιση λίστας αρχείων : dir
  • Δημιουργία φακέλου : mkdir όνομα_φακέλου
  • Αντιγραφή αρχείου : cp όνομα1 όνομα2
  • Μετονομασία αρχείου : mv παλιό_όνομα νέο_όνομα
  • Διαγραφή αρχείου (γιατί;) : rm όνομα
  • Εκτέλεση προγράμματος: start notepad++
  • Αποσύνδεση : exit/logout

Κάποιες περισσότερες εντολές του DOS και η χρήση τους

cls (Clear Screen)

cls

καθαρίζει την οθόνη, μας επιστρέφει ένα τερματικό χωρίς τις προηγούμενες εντολές

dir

dir

δίνει μια λίστα με τα αρχεία στον φάκελο που βρισκόμαστε

cd

cd /arxeio1

μας μεταφέρει μέσα στον φάκελο arxeio1 (είναι το ισοδύναμο του διπλού κλικ πάνω σε ένα φάκελο Windows).

cd ..

μας μεταφέρει στον μητρικο φάκελο (είναι το ισοδύναμο του up σε ένα φάκελο των Windows).

copy

copy /arxeio/onoma1.ext /arxeio/onoma2.ext

φτιάχνει ένα αντίγραφο του onoma1.ext στο onoma2.ext

rename

rename onoma1.ext onoma2.ext

μετονομάζει το onoma1.ext σε onoma2.ext

type

type onoma1.ext

Μας δείχνει τα περιεχόμενα του onoma1.ext (ουσιαστικά μας δείχνει το αρχείο)

mkdir

mkdir folder1

Δημιουργεί τον φάκελο folder1 (ισοδύναμο του make new folder στα Windows)

exit

(Internal)

exit

έξοδος από το DOS

Μερικές βασικές συμβουλές/οδηγίες

Πάντοτε αφήνουμε ένα κενό ανάμεσα στην εντολή και στα αρχεία που θέλουμε να χειριστούμε.

Προσέχουμε πάντοτε την “διεύθυνση” στην οποία βρισκόμαστε. Αυτο υποδηλώνει σε ποιο φάκελο του υπολογιστή βρισκόμαστε και φαίνεται στη γραμμή των εντολών. Π.χ. αν βλέπουμε στην οθόνη μας το

>My Documents/BIO494/Lecture1

αυτό σημαίνει πως βρισκόμαστε στον φάκελο Lecture1 που βρίσκεται μέσα στο BIO494 που με τη σειρά του βρίσκεται μέσα στο My Documents.

Με ένα απλό cd .. θα βρεθούμε στο ΒΙΟ494.

>My Documents/BIO494

Δοκιμάστε μόνοι σας

Πλοηγηθείτε μέσω DOS στο επίπεδο που θέλετε μέσα στο λογαριασμό σας και δημιουργήστε ένα φάκελο που θα ονομάσετε BIO494 και μέσα στον οποίο θα εργαζόμαστε στα πλαίσια του μαθήματος.

Μέσα σε αυτόν το φάκελο δημιουργήστε ένα αρχείο που να ονομάζεται "hello.pl" (περισσότερα παρακάτω)

Επεξεργαστές απλού κειμένου (text editors)

Καθόλη τη διάρκεια του μαθήματος θα χρησιμοποιήσουμε έναν απλό text editor για τη συγγραφή των προγραμμάτων μας. Η βασική διαφορά των text editors από τους επεξεργαστές κειμένου (όπως το Word π.χ.) είναι ότι δημιουργούν και επεξεργάζονται κείμενο με τη χρήση μόνο των βασικών ASCII χαρακτήρων, χωρίς αλλα στοιχεία μορφοποίησης (χρώματα, υπογραμμίσεις, γραμματοσειρές κλπ).

Χρειαζόμαστε ASCII χαρακτήρες γιατί το πρόγραμμα που κάνει την εκτέλεση ενός Perl script (η Perl δηλαδή) μπορεί να μεταφράσει μόνο αρχεία που περιέχουν αποκλειστικά τέτοιους χωρίς άλλη μορφοποίηση.

Για τις ανάγκες του μαθήματος συστήνουμε τη χρήση του ΤextPad ή Notepad++ για χρήστες Windows και τους default text editors για τους χρήστες συστημάτων Mac, Linux.

E. To πρώτο πρόγραμμα

Πριν αρχίσουμε

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.

Ασκήσεις:

1. Να γράψετε τον ψευδοκώδικα για τον υπολογισμό του παραγοντικού Ν

2. Να γράψετε ένα πρόγραμμα Perl που θα τυπώνει το όνομά σας και τον αριθμό μητρώου σας σε δύο διαδοχικές γραμμές.