ΗPerl είναι μία πολύ δημοφιλής αντικειμενοστρεφήςγλώσσα προγραμματισμού. Συνήθως ένα πρόγραμμα σε Perl εκτελείται χρησιμοποιώντας άμεσα ή έμμεσα τοδιερμηνέα της γλώσσας. Αυτό που διακρίνει την Perl από πολλ́ες άλλες γλώσσες προγραμματισμού είναι το γεγονός ότι είναι διαθέσιμη για σχεδόν όλα τα λειτουργικά συστήματα. Η γλώσσα σχεδιάστηκε από τονLarry Wallκαιο πηγαίος κώδικάς της διατίθεται βάση της αδείας ανοικτού κώδικα GPL. Η πρώτη έκδοση της γλώσσας εμφανίστηκε το 1987 ενώ στις αρχές του 2017, 30 χρόνια μετά τη δημιουργία της, ηπιο πρόσφατη έκδοσή της ήταν η 5.24.0.
Η γλώσσα προγραμματισμού Perl σχεδιάστηκε επειδή οLarry Wall ήθελε μία γλώσσα η οποία να συνδυάζει μόνο τα καλά στοιχεία τουsed, της C, της awkκαιτου κελύφους Bourneτου λειτουργικού συστήματος Unix. Η πρώτη έκδοση της γλώσσας ανακοινώθηκε στο alt.comp.sources τουUsenet στις στις 18 Δεκεμβρίου του 1987. Μετά την ταχύτατη διάδοση της γλώσσας ακολούθησαν οι εκδόσεις 2 (1988) και 3 (1989). Η τέταρτη έκδοση του 1991 δεν είχε σημαντικές διαφορές από την 3η αλλά δημιουργήθηκε ως έκδοση αναφοράς γιατο πρώτο βιβλίο με θέμα τη γλώσσα.
Η πέμπτη έκδοση ξεκίνησε να γράφεται το 1993 μετην σταθερή έκδοση της να εκδίδεται τον Οκτώβριο του 1994. Η έκδοση αυτή έφερε σημαντικές αλλαγές και προσέθεσε σημαντικές δυνατότητες ενώ ταυτόχρονα αύξησε τον αριθμό των υποστηριζόμενων λειτουργικών συστημάτων. Η έκδοση 5 συνεχίζει να αναπτύσσεται ακόμα και βρίσκεται στην έκδοση 5.30.0. ΗPerl 6 είναι η επόμενη έκδοση της γλώσσας η οποία επέφερε αρκετές αλλαγές τόσο στο συντακτικό όσο και στις δυνατότητες της γλώσσας.
Ως γλώσσα προγραμματισμού η Perl έχει ένα δυναμικό σύστημα τύπων, δηλαδή μία μεταβλητή αποκτά τύπο μόνο μετά από την ανάθεση μιας τιμής σε αυτή. Η Perl μπορεί να διαχειριστεί αριθμούς (δεκαδικούς και ακεραίους) και συμβολοσειρές. Επιπλέον, μπορούμε να έχουμε πίνακες απλούς (arrays) και συσχετιστικούς (associative arrays ή απλά hash tables), οι οποίοι είναι μηχανισμοί οργάνωσης δεδομένων. Μάλιστα με τους συσχετιστικούς πίνακες μπορούμε να δημιουργήσουμε δυναμικές δομές όπως δένδρα, στοίβες, ουρές κ.λπ. Υπάρχει πρόνοια γιατον διαχωρισμό μεταβλητών στις οποίες αναθέτουμε απλές τιμές ή σύνθετες τιμές.
Όταν ορίζουμε μία διαδικασία ή μία συνάρτηση στην Perl δεν σημειώνουμε τυπικές παραμέτρους αλλά απλά θεωρούμε πως η διαδικασία ή η συνάρτηση θα έχουν ως όρισμα έναν πίνακα. Άρα γιαμια συνάρτηση ή μία διαδικασία δεν υπάρχει προκαθορισμένος αριθμός ορισμάτων. Επίσης οι συναρτήσεις καιοι διαδικασίες στην Perl μπορούν να οριστούν αναδρομικά.
Ένα άλλο βασικό χαρακτηριστικό της γλώσσας είναι η εξαιρετική υποστήριξη τωνκανονικών εκφράσεων, δηλαδή παραστάσεων που μπορούν να περιγράψουν την γενική δομή μιας συμβολοσειράς και μπορούν να χρησιμοποιηθούν στη διαχείριση συμβολοσειρών. Ηπιο χαρακτηριστική χρήση των κανονικών εκφράσεων είναι στην λεκτική ανάλυση γλωσσών προγραμματισμού, δηλαδή στο κομμάτι εκείνο ενός μεταγλωττιστή που «σπάει» την είσοδο σε λεκτικές μονάδες (tokens).
Όπως αναφέρθηκε η Perl είναι μία αντικειμενοστρεφής γλώσσα προγραμματισμού. Στην Perl οι κλάσεις είναι πακέτα με ειδικές συναρτήσεις τα οποία επιστρέφουν την τιμή 1. Ο τρόπος δημιουργίας και χρήσης κλάσεων δεν είναι ιδιαίτερα κομψός ενώ παράλληλα δεν υποστηρίζει πολλές από τις δυνατότητες που υποστηρίζουν κατεξοχήν αντικειμενοστρεφείς γλώσσες όπως ηJavaκαιηScala.
Επίσης η Perl παρέχει εργαλεία για ταυτόχρονη επεξεργασία δεδομένων μέσω νημάτων ή κάνοντας χρήση της κλήσης συστήματος fork. Επιπλέον παρέχει υποδομές για δικτυακό προγραμματισμό. Επίσης παρέχει υποδομές γιατην εύκολη διασύνδεση με γνωστές βάσεις δεδομ́ενων, ενώ τα τελευταία χρόνια έγινε ιδιαίτερη δημοφιλής λόγω της χρήσης της στηβιοπληροφορική. Τέλος, η Perl έγινε πολύ γνωστή λόγω της χρήσης της γιατη δημιουργία των λεγομένων CGI scripts.
Η Perl χρησιμοποιείται από ένα ευρύ φάσμα χρηστών καισε πολλές εφαρμογές. Για παράδειγμα χρησιμοποιείται στη βιοπληροφορική, στη διαχείριση συστημάτων, στη διαχείριση ιστοτόπων, στη διαχείριση κειμένων (οργάνωση/παρουσίαση δεδομένων) κ.λπ.
Η Perl είναι προεγκατεστημένη στη συντριπτική πλειοψηφία των λειτουργικών συστημάτων τύπου Unix, ενώ υπάρχουν έτοιμες διανομές γιατα περισσότερα λειτουργικά συστήματα. Πιο συγκεκριμένα η Perl μπορεί να χρησιμοποιηθεί στα παρακάτω λειτουργικά συστήματα:[8]