logo


פרק 10: ניהול רשימות והאשים (Hashs)

תזכורת: רשימות וטבלאות האש

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

רשימה (list), מוכרת בשפות תיכנות רבות כמערך (array), הינה רצף מסודר של יחידות נתונים. רשימות ב Perl מסומנות בעזרת הקידומת @, ומוגדרות כך:

@colors=("red","green","blue");

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

$firstItem=$colors[0];

שימו לב שאנו מקדימים ל colors את הקידומת הסקלרית, $, כיוון שאנו ניגשים לאלמנט אחד בלבד ולא לרשימה כולה. הקידומת 0 מתייחסת לחפץ הראשון ברשימה, כיוון שאנו מתחילים את הספירה מאפס, אשר היה "red". עד כה הכל פשוט מאוד.

ניתן להוסיף חפץ לרשימה ע"י השמה ישירה לאינדקס פנוי או פשוט ל"דחוף" חפץ לסוף הרשימה בעזרת פונקצית ה push.

$colors[3]="magenta";
push(@colors,"magenta");

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

%item=("color"=>"blue");

הדוגמא יוצרת האש בשם item עם זוג מפתח-ערך של color->blue . כמו ברשימה אנו ניגשים לאחד הערכים בהאש כסקלר, ע"י שימוש בשדה המפתח כהפניה בקישור.

	
$itemColor=$item{"color"};

בהשמה הזו, המשתנה itemColor$ יקבל את הערך blue. אתם יכולים להוסיף כמה אלמנטים שאתם רוצים לטבלת ההאש - אולם, שלא כמו ברשימה, הסדר שלהם אינו משנה.

$item{"size"}="large";
$item{"price"}="22.99";

אתם יכולים לשלוף רשימה של כל המפתחות בהאש ע"י פונקצית ה keys:

	
@itemKeys=keys (%item);

כאן, הרשימה itemKeys@ תכיל את החפצים: "color", "size", ו "price"... לאו דווקא בסדר זה. למעשה איננו יודעים באיזה סדר הם יופיעו אלא אם כן ביצעתם סידור מפורש של המפתחות (עליו נדבר עוד מעט).

כעת, כשאנו מרגישים בנוח עם מושג הרשימה וטבלת ההאש הגיע הזמן לבצע כמה תעלולים.

(Hashs)שאתם צריכים לדעת פרק 10:ניהול רשימות והאשים Perl ה
תוכן עניינים
כל סוגי המיונים: רשימות

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