משתנים מסוג מערך אסוציאטיבי

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

use strict;
use warnings;

my %table;
$table{'schmoe'} = 'joe';
$table{7.5}  = 2.6;

בדוגמא זו יצרנו מערך אסוציאטיבי בעל שתי כניסות: כניסה בשם 'schmoe' שערכה 'joe' וכניסה 7.5 שערכה 2.6.

כפי שניתן לבצע מניפולציות על הסקלרים שהם אברי המערך, כך ניתן גם על hash.

נביט בדוגמא הבאה, הבאה כהמשך לדוגמא לעיל:

print "$table{'schmoe'}\n";    # outputs "joe\n"
--$table{7.5};                 # $table{7.5} now contains 1.6



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

לדוגמא:

my @tableListed = %table;  # @tableListed is qw/schmoe joe 7.5 1.6/

אם ננסה לשים מערך אסוציטיבי בהקשר של סקלר, אזי תוכן הסקלר יהיה undef אם המערך האסוציאטיבי ריק מאיברים, או true אם יש בו.

מאת: עודד

אופרטורים

עמוד 12!!!
מאת: עודד

אופרטורים

אין טבלת אופרטורים בעמוד!!!
מאת: MoShiKy

טעויות כתיב

אם יש לך זמן כדאי שתתקן את השגיאות הבאות במסמך:
עמ' 20- "אם זאת" => "עם זאת"
עמ' 21- "אל הרשימ" => "אל הרשימה"

EOC
שיתוף:
| עוד