אתה נמצא כאן יסודות השפה  »  פונקציות  »  המשתנה _@

המשתנה _@

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

נחזור לסאברוטינה שסוכמת שני ערכים כלשהם המועברים כארגומנטים:

sub sum {
$_[0]+$_[1];
}

עתה נעביר את הסאברוטינה לצורה כללית יותר, בה היא סוכמת מספר כלשהו של פרמטרים.

sub sum {
$sum=0;
/*אתחול*/

foreach (@_)
    {$sum+=$_;
/*הלולאה עוברת על כל האלמנטים שבמערך הארגומנטים וסוכמת אותם*/
 }
$sum;
/*החזרת הערך שהפונקציה חישבה*/

}
print &sum(1,2,3);     # יודפס 6
print &sum(1..3);     # גם יודפס 6
print &sum(1,2);     # יודפס 3

אך מה אם היה לנו משתנה גלובלי בשם sum$ כשקראנו לפונקציה ?
המשתנה הזה יידרס. נראה בהמשך דרכים למנוע זאת...



להוספת תגובה, אנא התחברו לדרכונט.