המשתנה
_@
המשתנה
_@
הוא משתנה מקומי עבור הסאברוטינה הנוכחית בה אנו נמצאים.
אם יש ערך גלובלי עבור ה
_@
, הערך יישמר לפני הקריאה לסאברוטינה, ובסיומה ערכו יחזור להיות ערכו המקורי, אשר נשמר מבעוד מועד.
זאת אומרת, סאברוטינה אחת יכולה להעביר ארגומנטים לסאברוטינה אחרת ללא שום חשש שנאבד את ערכי ה
_@
המקורי שלה, כי לסאברוטינה שתקונן בתוכה יהיה
_@
משלה.
נחזור לסאברוטינה שסוכמת שני ערכים כלשהם המועברים כארגומנטים:
עתה נעביר את הסאברוטינה לצורה כללית יותר, בה היא סוכמת מספר כלשהו של פרמטרים.
sub sum {
$sum=0;
foreach ( @_)
{ $sum+=$_;/* | הלולאה עוברת על כל האלמנטים שבמערך הארגומנטים וסוכמת אותם | */ |
}
$sum;/* | החזרת הערך שהפונקציה חישבה | */ |
}
print & sum( 1, 2, 3); # יודפס 6
print & sum( 1. .3); # גם יודפס 6
print & sum( 1, 2); # יודפס 3
אך מה אם היה לנו משתנה
גלובלי בשם
sum$
כשקראנו לפונקציה
?
המשתנה הזה יידרס. נראה בהמשך דרכים למנוע זאת...
להוספת תגובה, אנא התחברו לדרכונט.
|