Perl

היסטוריה

לארי וול החל לעבוד על Perl ב-1987 ושחרר את גרסה 1.0 לקבוצת הדיון comp.sources.misc ב-18 בדצמבר 1987. השפה התרחבה במהירות בשנים לאחר מכן. ל-Perl 2 ששוחררה ב-1988, היה מנוע ביטויים רגולריים טוב יותר. Perl 3, ששוחררה ב-1989, הוסיפה יכולת טיפול במידע בינארי, בנוסף לטקסטואלי.
עד 1991, התיעוד היחידי ל-Perl היה דף man יחיד, שהלך והתארך. ב-1991 פורסם הספר "Programming Perl", שמכונה "ספר הגמל" על שם הגמל שהציבה הוצאת הספרים O'Reilly על כריכתו. הספר הפך עם הזמן לתיעוד דה פקטו של השפה ושל המפרש שלה. גרסת Perl קודמה ל-4, לא כדי לציין שינוי משמעותי בשפה, אלא כדי לציין את הגרסה שתועדה בספר.
Perl 4 עברה מספר גרסאות תחזוקה, עד גרסה Perl 4.036 ב-1993. בשלב זה נטש וול את Perl 4 כדי להתחיל לעבוד על Perl 5.‏ Perl 4 נותרה בגרסה 4.036 עד היום.

Perl 5

הפיתוח של Perl 5 המשיך ב-1994. רשימת הדיוור "perl5-porters" הוקמה במאי 1994 כדי לתאם את המאמץ של הסבת Perl 5 למערכות השונות. רשימת הדיוור נשארה הפורום הראשי של פיתוח, תחזוקה, והסבה של Perl 5.
Perl 5 שוחררה ב-17 באוקטובר 1994. הגרסה כללה שכתוב כמעט מחדש של המפרש, והוסיפה תכונות חדשות רבות לשפה, כולל אובייקטים, מצביעים, מרחבי-שמות ומודולים. המודולים משמשים אמצעי להרחבת השפה בלי צורך לשנות את המפרש. אופן פעולה זה איפשר לליבת המפרש להתייצב, כשתוך כך נוספים מאפיינים נוספים לשפה, בעזרת המודולים, שהם למעשה ספריות בינאריות, וברוב המקרים כתובות ב-C.
באוקטובר 1995 הוקמה CPAN (ראשי תיבות של Comprehensive Perl Archive Network).‏ CPAN היא אוסף של אתרים שאוגרים ומפיצים קוד מקור של Perl, הפצות בינאריות, תיעוד, ומודולים. במקור, היה צריך לגשת לכל אתר ב-CPAN דרך הכתובת הייחודית שלו; כיום הכתובת היחידה http://www.cpan.org/ מפנה אוטומטית לאתר CPAN כלשהו.
נכון לשנת 2011, Perl 5 עדיין מתוחזקת באופן פעיל. היא כוללת תמיכה ביוניקוד. הגרסה היציבה האחרונה היא Perl 5.12.3.
הגרסאות הראשונות של Perl היו זמינות רק בסביבת יוניקס, אך כיום זמינה סביבת ריצה שלה עבור מגוון רחב של מערכות הפעלה.
Perl איננה שפת מפרש או שפה מהודרת. זאת מכיוון שהיא אינה משתמשת במהדר על מנת ליצור קובצי ריצה בינאריים, אלא טוענת את ליבת המפרש עצמו לזיכרון. ליבת המפרש ממירה בתחילת הריצה (ובמקרים מסוימים גם בהמשכה) את הקוד שנכתב על ידי המתכנת לשפת מכונה. למרות זאת, תוכנית בשפת Perl מכונה תסריט (באנגלית: script; סקריפט), כפי שמכונות תוכניות הכתובות בשפת מפרש.
בימיו הראשונים של האינטרנט, הרבה פעילות צד השרת בוצעה על ידי תסריטים ב-Perl. הפופולריות של Perl ביישומי רשת קטנה באופן משמעותי לטובת טכנולוגיות אחרות, דוגמת PHP,‏ ASP, ‏ASP.NET‏, פייתון ו-Java.
כמעט כל הפצת לינוקס כוללת Perl, וחלק מ-GNU coreutils כתוב ב-Perl.
חלק ממערכות ניהול התוכן של אתרים פופולריים באינטרנט כתובות ב-Perl, לדוגמה סלאשדוט ו-Amazon.com.
‏

Perl 6

בשנת 2001, החליט לארי וול על שכתוב נוסף של פרל: פרל 6. בניגוד לגרסאות הקודמות, הפעם לא היה מימוש יחיד, אלא רק אוסף הגדרות של השפה.
בשנים 2001-2004 חיבר וול אוסף מסמכי חזון (אפוקליפסות, באנגלית: Apocalypses). אלו היו שמונה מסמכים שתארו איך אמורה, לדעתו, להראות השפה. במקביל כתב דמיאן קוניי את פירושיו (אנגלית: Exegeses) לחזונותיו של וול. לאחר השלמתם, הוא החל לכתוב אוסף "תקצירים" (Synopses, בפועל מפרטים) של השפה].
השפה תוכננה להיות ממומשת מעל המכונה הווירטואלית Parrot. וול קיווה שעד מהרה עיקר הפיתוח של פרל יעבור לפרל 6, אולם בפועל הפיתוח של השפה התמהמה. רק לקראת 2010 החלו להופיע מימושים עובדים.
חלק מהשיפורים שנוספו בשפה נכנסו גם לגרסה 5.12 של פרל.

מבנה

תוכנית בשפה דומה במידת מה לתוכנית בשפת התכנות C (לדוגמה, שימוש בסוגריים מסולסלים - { }), אך עם זאת ישנם הבדלים רבים, שנוצרו בהשפעת התחביר של Unix Shell,‏ AWK ועוד.

מודולים ומחלקות

קוד ב-Perl יכול להשתמש במודולים מוכנים מראש, אותם ניתן לטעון בזמן ריצה. כמו כן, ניתן להשתמש במחרוזות כקטעי קוד המפורשים בזמן ריצה.
החל מגרסה 5 (1994), תומכת Perl חלקית גם בתכנות מונחה עצמים, וזאת על ידי אפשרות להפוך מודול לסוג של מחלקה. אובייקט הוא מצביע (בדרך כלל מצביע למערך אסוציאטיבי) ש"בורך" (על ידי הפעולה bless) להיות שייך למחלקה. יש הורשה, אולם רק של הפעולות, ולא של תוכן האובייקט.

תוכניות לדוגמה

בקהילת פרל מפורסמת האמירה "יש יותר מדרך אחת לעשות את זה" (ידועה גם בראשי התיבות באנגלית: TIMTOWTDI - There Is More Than One Way To Do It). השפה מאפשרת סגנונות כתיבה שונים. אפשר לכתוב במסגנון דומה מאוד לזה של שפת C, אך אפשר לכתוב בדרכים שונות לחלוטין.
דוגמה לקוד שדומה לקוד בשפת C: סיכום כל אבריו החיוביים של מערך מספרים (input_arr). התחביר דומה מאוד לזה של C למעט ה-sigil שבתחילת מספר ובדיקת אורך המערך. בניגוד למומלץ קוד זה לא עושה שימוש ב-my.
$sum = 0;for ($a=0; $a <= $#input_arr; $a++) {
 if ($input_arr[$a] > 0) {
 $sum += $input_arr[$a];
 }}
דוגמת לקוד בסגנון שונה: בהינתן מערך של כלי נגינה, נדפיס מי מאנשי להקת החיפושיות מנגן באיזה כלי (ואם לא: לא נדפיס בכלל). שימו לב לשימוש ב-‎$_‎ כמשתנה הלולאה.
# %beatles was defined in a previous examplemy @instruments = ('Sitar', 'Violin', 'Bass', 'Drums', 'Flute', 'Bass', 'Guitar');my @beatles_instruments = ();foreach (@instruments) {
 next unless (exists $beatles{$_});
 push @beatles_instruments, $_;}foreach (sort @beatles_instruments) {
 print "$beatles{$_} plays $_.\n";}

שימושים עיקריים

הצד החזק של Perl הוא מניפולציה של מחרוזות, הן מהזנה מהקלט הסטנדרטי והן מקבצים. בשל כך, השימוש ב-Perl מקובל בתחומים מסוימים בכלכלה ובביולוגיה, ובמיוחד בביו-אינפורמטיקה.
את היכולות שמציעה Perl כשפה ניתן להרחיב באמצעות מספר עצום של מודולים, רבים מהם זמינים בחינם באתר CPAN.
החל באמצע שנות ה-90 של המאה ה-20, ועד תחילת העשור הראשון של המאה ה-21 הייתה Perl אחת השפות הפופולריות ביותר ל-CGI, כלומר תוכנת צד שרת שמפעילה אתרי אינטרנט, אך בהדרגה הוחלפה על ידי שפות אחרות כמו PHP, ‏ ASP, ו-Java. בתחילת העשור השני של המאה ה-21 עדיין נעשה שימוש נרחב ב-Perl להפעלת אתרי אינטרנט, אך היא כבר אינה אחת השפות המובילות למימושים אלו.
אחד מחסרונותיה העיקריים של שפת Perl הוא הקושי בקריאת תוכנית הכתובה בה, ובפרט תחזוקתה, אם התוכנית לא תוכננה מראש לקריאות מרבית. הפוטנציאל הרב לחוסר קריאות של תוכנית Perl נובע מהפעולות הנסתרות וקיצורי הדרך הרבים הנכללים בשפה. קיצורי דרך אלו מקלים מאוד את הפיתוח המהיר של תוכנית בשפת Perl, אך מקשים על אילו שאינם שולטים ברזי השפה להבין את תפקוד התוכנית מקריאה, ובמיוחד אם בעת הכתיבה לא הושם דגש על קריאות. בשל חוסר קריאות לכאורה זה, יש המפרשים בהומור את השם Perl כראשי תיבות של "Pathologically Eclectic Rubbish Lister".