טיפוסי נתונים#

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

מדריך עיון זה מחולק לעמוד אחד לכל נושא. נושאים החולקים הקשר (המרת מספרי מול מחרוזת, הפניות מול typeglobs, הקשר מול שיבוץ) שוכנים באותו עמוד; נושאים שאינם חולקים הקשר מקבלים עמוד משלהם.

בחרו נושא#

  • סקלרים - $x. מספרים, מחרוזות, הפניות; undef; אמת ומוגדרוּת; הטבע הכפול המספרי/מחרוזת של סקלרים.

  • מערכים - @arr. גישה לאלמנטים, $#arr, אינדקסים שליליים, פרוסות, השמת רשימה, כלל ה־sigil של @arr / $arr[i] / @arr[i,j].

  • האשים - %h. זוגות מפתח-ערך, ארבעת הטעמים של מנוי, keys/values/each, סדר המפתחות, פרוסות האש ופרוסות מפתח/ערך.

  • הקשר - רשימה, סקלר, void, בוליאני. כיצד כל אופרטור והשמה כופים הקשר, מה wantarray מדווח, האופרטור scalar(), והמלכודות החוזרות עם , מול בניית רשימה.

  • מספרים ומחרוזות - המרה אוטומטית בשני הכיוונים, מספר שלם מול נקודה צפה, Inf ו־NaN, צורות ליטרל מספרי, ”0 but true“, dualvar, מלכודות locale ודיוק.

  • הפניות - \X, שבעת הדברים שניתן להפנות אליהם, ארבע הדרכים ל־deref, autovivification, הפניות חלשות, מבנים מעגליים, ref ו־Scalar::Util.

  • Typeglobs - *name. רשומת טבלת הסמלים, aliasing, *foo{THING}, מתי Perl מודרני עדיין זקוק להם ומתי הפניות הן התשובה הנכונה במקום זאת.

  • שיבוץ - מה מחרוזות במרכאות כפולות, here-docs ותבניות regex משבצות; הסוגריים המסולסלים ${name}; המבנים הבארוקיים @{[ expr ]} ו־${\ expr }; דו־משמעויות עם [ ו־{ אחרי sigil.

מושגים חוצי־רוחב#

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

  • Sigils מסמנים את התוצאה, לא את המכל. @arr[1, 3] אינו ”שני מערכים“; ה־@ אומר ”התוצאה היא רשימה“. המשתנה בשם arr זהה ב־@arr, ב־$arr[0], ב־@arr[0..3] וב־%arr[0..3].

  • הקשר כופה המרה. סקלר המוערך בהקשר רשימה הופך לרשימה בת אלמנט אחד; רשימה המוערכת בהקשר סקלר מניבה את האלמנט האחרון שלה (אופרטור הפסיק), אך מערך בהקשר סקלר מניב את האורך שלו. שני המקרים אינם זהים; ראו הקשר.

  • הפניות הן סקלרים. הפניה לכל דבר נכנסת לתוך משתנה סקלרי, וזה מה שמאפשר מבני נתונים מקוננים. תחביר ה־deref (@$ref, $ref->[0], ${$ref}{key}) הוא ההופכי של \.

  • undef הוא ערך, לא היעדר של ערך. סקלר יכול להחזיק את הערך undef; בדיקת defined $x היא הדרך לשאול. מערך יכול להכיל אלמנטים בעלי ערך undef מבלי להיות ריק.

  • מחרוזות ומספרים ממירים בשקט. "42" + 1 הוא 43, 42 . "x" הוא "42x". ההמרה תמיד מוגדרת; ראו מספרים ומחרוזות למה שנחשב ”looks like a number“ והיכן הפינות.

ראו גם#

  • perlop - האופרטורים הקוראים ומייצרים ערכים אלה (חשבון, השוואה, מנוי, טווח, חץ, השמה).

  • perlvar - המשתנים המיוחדים ש־Perl מאכלס במצב מן הפעולה האחרונה, כולל $_, @_, משתני ההתאמה, ומעצבי ה־I/O $/, $\, $,, $".

  • perlfunc - הפונקציות המובנות הפועלות על טיפוסים אלה: ref, scalar, wantarray, defined, keys, values, each, exists, delete, bless.

  • הדרכת הפניות - מבוא צעד־אחר־צעד לצורות ההפניה המכוסות בקצרה בהפניות.