logo


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

משתני Perl: רשומות (ובשם נוסף: מערכים)

עד עתה, הוצפנו במידע אודות משתנים סקלריים, אשר מהווים את סוג המשתנים הנפוץ ביותר ב Perl (ובעצם בכל שפת תכנות אחרת). אולם הם אינם הסוג היחיד של המשתנים, לצדם נמצאות גם הרשימות (lists), המכונות גם מערכים (arrays) בשפות תכנות אחרות. אם נסכם את תפקידן, הרשימות נותנות לנו את האפשרות לאכסן מספר ערכים במשתנה אחד, לעומת ערך אחד בלבד במשתנה סקלרי.

השימוש ברשימות נפוץ מאוד בחיי היום יום שלנו. רשימת קניות היא רשימה הכוללת מספר ערכים מילוליים - שמות המוצרים. תקציב הוא רשימה הכוללת מספר ערכים מספריים - ההוצאות וההכנסות וכו'.

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

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

@shopping=("milk","eggs","bread","cheetos");

לפיכך הרשימה shopping@ מכילה ארבעה ערכים, שמאוכסנים בסדר בו הם נוצרו. הפריט הראשון הוא "milk", השני "eggs", וכדומה. חשוב מאוד לדעת שהפריט הראשון ברשימה מקבל את ערך האינדקס אפס, ולפיכך הפריט האפס ברשימה הוא "milk", הראשון הוא "eggs" וכו'.

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

$shopping[0]="skim milk";

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

@shopping[0,3]=("skim milk","diet cheetos");

בדוגמא הזו השמנו שני ערכים חדשים לתוך הרשימה שלנו, לפריט הראשון והאחרון. לכן גם נשארנו עם קידומת ה @, כיוון שהשתמשנו בחתיכה מהרשימה.

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

ניתן לבדוק את אורך הרשימה, משמע כמה איברים יש בתוכה, ע"י הפעולה הסקלרית (פעולה שתוצאתה סקלר):

$#shopping

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

הרשימה מהווה אמצעי נוח לסוגים שונים של מיוני משתנים, אולם מדריך זה היינו רק מדריך בסיסי ולא נתעסק בכך עתה. אולם לאחר שנניח את היסודות, יהיה לנו קל הרבה יותר בהמשך.

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