הקשר :: לשמר

הפעל קוד לאחר שיחת שגרת, שמירה על ההקשר שגרתן היה רואה אם זה היה ההצהרה האחרונה במתקשר
הורד עכשיו

הקשר :: לשמר דירוג וסיכום

פרסומת

  • Rating:
  • רישיון:
  • Perl Artistic License
  • מחיר:
  • FREE
  • שם המפרסם:
  • Jonathan Rockway
  • אתר האינטרנט של המוציא לאור:
  • http://search.cpan.org/~jrockway/

הקשר :: לשמר תגים


הקשר :: לשמר תיאור

הפעל קוד לאחר שיחת משנה, שמירה על ההקשר השגרה היה רואה אם זה היה הצהרה האחרונה במתקשר ההקשר :: שימור הוא מודול פרל המסייע לך להפעיל קוד לאחר שיחת משנה, שמירה על ההקשר השגרה היה רואה אם זה היה הצהרה האחרונה caller.synopsishave לך פעם כתב את זה? שלי ($ תוצאה, @result); # הפעל תת ההקשר הנכון אם (! DEFINATE DESTARRAY) {כמה :: קוד (); } Elsif (Quararray) {@result = כמה :: קוד (); } אחר {$ תוצאה = כמה :: קוד (); } # לעשות משהו לאחר כמה :: קוד $ _ + = 42 עבור (@result, $ תוצאה); # סוף סוף להחזיר את הערך הנכון אם (! מוגדר desarray) {לחזור; } Elsif (desarray) {return @result; } אחר {return $ התוצאה; } עכשיו אתה יכול פשוט לכתוב את זה במקום: השתמש בהקשר :: לשמר; Return Preserve_Context {כמה :: קוד () לאחר => תת {$ _ + = 42 עבור @_}; לפעמים אתה צריך להתקשר לפונקציה, לקבל את התוצאות, לפעול על התוצאות, ולאחר מכן להחזיר את התוצאה של הפונקציה. זה כואב בגלל הקשרים; הפונקציה המקורית יכולה להתנהג אחרת אם זה נקרא בהקשר חלל, scalar או רשימה. אתה יכול להתעלם מהמקרים השונים ופשוט לבחור אחד, אבל זה שביר. כדי לעשות דברים נכון, אתה צריך לראות איזה מקרה אתה נקרא, ולאחר מכן קוראים את הפונקציה בהקשר זה. זה גורם 3 נתיבי קוד, שהוא כאב להקליד (ולתחזק) מודול זה ממכן את התהליך. אתה מספק coderef כי הוא "פונקציה מקורית", ועוד coderef לרוץ לאחר הריצות המקוריות. אתה יכול לשנות את ערך ההחזרה (כושר כדי @_) כאן, ולעשות כל דבר אחר שאתה צריך לעשות. Quararray הוא נכון בתוך coderefs; ב "לאחר", עם זאת, ערך ההחזרה מתעלמת והחזרת הערך של הערך קשורה להקשר שהפונקציה המקורית נקראה. דרישות: · פרל


הקשר :: לשמר תוכנה קשורה