אתה נמצא כאן יסודות השפה  »  פונקציות  »  ערכי חזרה

ערכי חזרה

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

sub sum
/*חישוב סכום שני מספרים*/
{
$a+$b;
}

הביטוי האחרון שחושב בגוף הסאברוטינה הוא סכום a$ עם b$ ולכן ערך זה יהיה הערך שיוחזר.
נראה זאת בפעולה:

$a=1;
$b=2;
$sum=∑
/*חישוב סכום שני מספרים והשמת ערך החזרה במשתנה sum$ */

$c=3*∑     # יקבל את הערך 9

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

sub list
/*השמת שני מספרים במערך*/
{
($a,$b);
}
$a=1;
$b=2;
@list=&list;
/*תבוצע השמה והמערך יהיה : (1,2) */

הביטוי האחרון שמחושב בסאברוטינה הוא יצירת המערך בגוף הסאברוטינה. בדוגמא הבאה הסאברוטינה מחזירה את הערך של a$ אם ערכו גדול מאפס, אחרת היא תחזיר את הערך של b$ .

sub a_or_b{
if ($a>0)
     $a;
/*a$ הוא ערך החזרה*/

else
     $b;
/*b$ הוא ערך החזרה*/

}

שימו לב:
הביטוי האחרון שיחושב בה הוא a$ או b$ שהופך לערך החזרה בהתאם לתנאי שניתן.
אם נחליף את השורה שבה כתוב a$ ונכתוב שם ;"print "string אזי ערך החזרה יהיה 1 במידה וההדפסה תבוצע בהצלחה, ו 0 במקרה של כשלון.



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