logo


פרק ראשון: ה Perl שאתם צריכים לדעת

משתנים ב Perl: סקלרים

משתנים, כמו שהשם רומז, נותנים לנו את היכולת לעבוד עם נתונים המשתנים במהלך העבודה. אנו משתמשים בהם להכלת ערכים, יהיו אלו ערכים אריטמטיים (מספרים), או מחרוזות (אוסף תווים). כמו כן ניתן לבצע פעולות שונות על המשתנים (כגון חיבור, חיסור, כפל, איחוד וכד'). המשתנה הכי בסיסי ב Perl הוא הסקלר, אשר מיוצג ע"י הסימן $ בתחילתו. לדוגמא נניח שאנו רוצים לשמור את שער החליפין בין הדולר האמריקאי לקנדי במשתנה הנקרא "exRate". ב Perl נתייחס למשתנה כ:

$exRate

כמו כן ניתן לבצע השמה של ערך מספרי לתוך המשתנה exRate:

$exRate=1.35;

כעת ניצור משתנה נוסף, USTotal שייצג את כמות הדולרים האמריקאיים העומדת לרשותנו, ולאחר מכן נחשב את ערכם בדולרים קנדים - לתוך המשתנה CDNTotal$ , ונדפיס את התוצאות.

#!/usr/bin/perl
$exRate=1.35;
$USTotal=50.00;
$CDNTotal=$USTotal*$exRate;
print "$USTotal American dollars is equivalent ". 
"to $CDNTotal Canadian dollars.\n";

 

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

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

50 American dollars is equivalent to 67.5 Canadian dollars.

כמו שאתם יכולים לראות סקלר מכיל פיסת מידע אחת - הערך. בשפות תכנות אחרות ישנה הבחנה מדויקת של סוג המידע שכל משתנה יכול לאכסן בתוכו. לדוגמא: משתנה ממשי (real) למידע המכיל נקודה עשרונית (כמו 25.75), שלם (integer) למספר שלם (כמו 25) או מחרוזת המקבלת אוסף תווים (כמו "1999 hellow"). מרבית השפות ידרשו ממך להגדיר מראש את סוג המידע שהמשתנה יקבל, לא כן הדבר ב Perl, כאן משתנה יכול לקבל מידע מכל סוג שתרצו, והשפה, כבר תבין לבד באיזה סוג משתנה אתם מעונינים להשתמש. את חשיבות הדבר נבין בהמשך. כאשר משתמשים במשתנים סקלריים אנו מעונינים בדרך כלל בשני סוגי פעולות: עיבוד והשוואה.

משתני Perl: פעולות על סקלרים

בתוכנית הקודמת ראינו דוגמאות לפעולות על סקלרים. שימו לב לשורה 3 בדוגמה:

$CDNTotal=$USTotal*$exRate;

בשורה הזו ישנן שתי פעולות: פעולת הכפל, המיוצגת ע"י הכוכבית (*), אשר מכפילה את ערך המשתנה USTotal$ בערך המשתנה exRate$. אופרטור ההשמה, המיוצג ע"י תו ההשוואה (=), משים את ערך פעולת הכפל במשתנה CDNTotal$ . כמו שכבר ציינו Perl משתמשת בכוחה בכדי להתייחס לסוג הערך שהמשתנה מכיל. לדוגמא, למכפלת משתנים ישנה משמעות רק אם שניהם מכילים ערכים מספריים (וכי איזה משמעות ישנה להכפיל "עופות" ב "ביצים"), ולכן כאשר תשתמשו באופרטורים מתמטיים Perl תשתדל להשתמש במידע המוכל במשתנים כמספרים. אולם לא כל הפעולות הם אריתמטיות. בתור דוגמא נתבונן באופרטור ההמשכיות, המיוצג ע"י הנקודה (.). המשכיות המחרוזת היינה תוצאה של הצמדת שני מחרוזות לדוגמא:

"hello" . "goodbye"
yields
"hellogoodbye"

זהו המקום להבהיר נקודה חשובה ביותר. אם נשתמש באופרטור אריתמטי על שני ערכים מספריים,Perl תבצע פעולה מתמטית. לעומת זאת, אם נשתמש באופרטור מחרוזתי, על שני הערכים הנ"ל,Perl תתייחס אליהם כמחרוזות. ולפיכך:

5 + 10
yields
15
5 . 10
yields
"510"

Perl הרצת תוכניות
תוכן עניינים
Perl אופרטורים בסיסיים בשפת

אודות
תוכן עניינים
פרק 1: ה Perl שאתם צריכים לדעת
מי מפחד מ Perl  
התקנת Perl  
הרצת תוכניות Perl  
משתנים ב Perl : סקלרים  
אופרטורים בסיסיים ב Perl  
משתני Perl: השוואת סקלרים  
אופרטורים של השוואה ב Perl  
משתני Perl: רשומות (ובשם נוסף: מערכים)  
משתני Perl: טבלאות האש  
פונקציות ב Perl  
זרימת תוכניות ב Perl  
סיכום  
פרק 2: קישור Perl לעמודי הרשת
פרק 3: שמירת מצב
פרק 4: HTML בחטף ותבניות (Templates) רשת
פרק 5: עיבוד וניתוח של עמודי רשת
פרק 6: להשתעשע עם בסיסי נתונים מקוונים:אקסס
פרק 7: המודל MySQL
פרק 8: להשתעשע בבסיסי נתונים - GUFE - החזית הכללית והשימושית
פרק 9: המילניום - ניהול זמן ותאריך
פרק 10: ניהול רשימות והאשים (Hashs)
פרק 11: הפניה להפניה
פרק 12: הכרות עם mod_perl