atexit.ATEXIT´Â ÇÁ·Î±×·¥À̳ª °´Ã¼¿¡ ´ëÇÑ Á¾·á 󸮸¦ ¼öÇà ÇÒ ¼öÀÖ´Â PERL ¸ðµâÀÔ´Ï´Ù. | |
Áö±Ý ´Ù¿î·Îµå |
atexit. ¼øÀ§ ¹× ¿ä¾à
±¤°í
- ƯÇã:
- Perl Artistic License
- °¡°Ý:
- FREE
- °Ô½ÃÀÚ À̸§:
- Andrew Langmead, Brad Appleton and Michael A. Chase
- °Ô½ÃÀÚ À¥»çÀÌÆ®:
- http://search.cpan.org/~bradapp/AtExit-2.01/AtExit.pm
atexit. ű×
atexit. ¼³¸í
AtexitÀº ÇÁ·Î±×·¥À̳ª °´Ã¼¿¡ ´ëÇÑ Á¾·á 󸮸¦ ¼öÇà ÇÒ ¼öÀÖ´Â Perl ¸ðµâÀÔ´Ï´Ù. atexitÀº ÇÁ·Î±×·¥À̳ª object.synopsis »ç¿ëÀ» À§ÇØ Á¾·á 󸮸¦ ¼öÇà ÇÒ ¼öÀÖ´Â Perl ¸ðµâÀÔ´Ï´Ù. ÇÏÀ§ Á¤¸® {my @args = @_; Àμâ "cleanup () ½ÇÇà : args = @argsn"; } ##ÀÌ ÇÁ·Î±×·¥ÀÌ $ _ = atexit (Á¤¸® "¸¦ Á¾·á ÇÒ ¶§ È£Ãâ ÇÒ ¼ºê ·çƾÀ» µî·ÏÇÕ´Ï´Ù (ÀÌ È£ÃâÀº ¸ÕÀú µî·ÏµÇ¾ú½À´Ï´Ù"). Àμâ "atexit ()¿¡ ´ëÇÑ Ã¹ ¹ø° È£Ãâ $ _n"; $ _ = atexit ( "Á¤¸®", "ÀÌ È£ÃâÀº µÎ ¹ø°·Î µî·ÏµÇ¾ú½À´Ï´Ù"); "atexit ()¿¡ ´ëÇÑ µÎ ¹ø° È£ÃâÀ» ÀμâÇϽʽÿÀ $ _n"; $ _ = atexit ( "Á¤¸®", "ÀÌ È£ÃâÀº rmexit¿¡ ÀÇÇØ µî·Ï ÇØÁ¦µÇ¾î¾ß ÇÔ); rmexit ($ _) ¶Ç´Â °æ°í "couldnt 'exit-sub $ _!"; ÀÌ ¾îÈÖ ¹üÀ§°¡ ³» $ SCOPE1 = ATEXIT-> »õ (Á¤¸®, "¹üÀ§ 1, Äݹé 1")¸¦ ÀÔ·Â ÇÒ ¶§ (@ARGV == 0) {## µî·Ï ÇÏÀ§ ·çƾÀÌ È£Ãâ µÉ ¼ö ÀÖ½À´Ï´Ù. {##ÀÌ Áßø µÈ ¹üÀ§¿¡ ´ëÇØ µ¿ÀÏÇÑ ÀÛ¾÷ ³» $ scope2 = atexit-> new; $ _ = $ scope2-> atexit (Á¤¸®, "¹üÀ§ 2, Äݹé 1"); $ scope1-> atexit (Á¤¸®, ¹üÀ§ 1, Äݹé 2 "); $ scope2-> atexit (Á¤¸®, "¹üÀ§ 2, Äݹé 2"); $ scope2-> rmexit ($ _) ¶Ç´Â °æ°í "exit-sub $ _!"¸¦ µî·Ï Ãë¼Ò ÇÒ ¼ö ¾ø½À´Ï´Ù; Àμâ "*** ³²±â±â ¹üÀ§ 2 *** n"; } Àμâ "*** ¿Ï¼º µÈ ¹üÀ§ 2 *** n"; Àμâ "*** ³²±â±â ¹üÀ§ 1 *** n"; } Àμâ "*** ¿Ï¼º µÈ ¹üÀ§ 1 *** n"(@ARGV == 0); ³¡ {Àμâ "*** ÇÁ·Î±×·¥ Ãⱸ 󸮸¦ ¼öÇàÇÕ´Ï´Ù *** n"; } ATExit ¸ðµâÀº Ç¥ÁØ C ¶óÀ̺귯¸®ÀÇ ATExit ÇÔ¼ö ÈÄ ¸ðµ¨¸µ µÈ ANSI-C ½ºÅ¸ÀÏ Á¾·á 󸮸¦ Á¦°øÇÕ´Ï´Ù (atexit (3C) ÂüÁ¶). ´Ù¾çÇÑ Ãⱸ ó¸® ·çƾÀº atexit¸¦ È£ÃâÇÏ°í ¿øÇÏ´Â ¼ºê ·çƾÀ» ¿øÇÏ´Â Àμö¿Í ÇÔ²² Àü´ÞÇÏ¿© µî·Ï ÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·± ´ÙÀ½ ÇÁ·Î±×·¥ ÃâÀԽà ½Ã°£¿¡ ATExit¿¡ µî·Ï µÈ ¼ºê ·çƾÀº µî·ÏÀÇ ¿ª¼øÀ¸·Î ÁÖ¾îÁø Àμö·Î È£ÃâµË´Ï´Ù (¸¶Áö¸· Çϳª´Â ¸ÕÀú È£ÃâµË´Ï´Ù). µ¿ÀÏÇÑ ¼ºê ·çƾÀ» ÇÑ ¹ø ÀÌ»ó µî·ÏÇÏ¸é °¢ µî·Ï¿¡ ´ëÇØ ÇØ´ç ¼ºê ·çƾÀÌ ÇÑ ¹ø È£ÃâµË´Ï´Ù. ATExit °´Ã¼´Â ¸ðµç ¹üÀ§¿¡¼ »ý¼º µÉ ¼ö ÀÖ½À´Ï´Ù. ÇÔ¼ö·Î È£Ãâ µÉ ¶§ atexit ÇÁ·Î±×·¥ Ãⱸ ½Ã°£¿¡ ÄݹéÀ» ½ÇÇàÇÒ ÄݹéÀ» µî·ÏÇÕ´Ï´Ù. ±×·¯³ª $ object-> method_name ±¸¹®À» »ç¿ëÇÏ¿© object-method·Î È£Ãâ ÇÒ ¶§ atexit °´Ã¼¿¡ µî·Ï µÈ ÄݹéÀÌ °´Ã¼ Æı« ½Ã°£¿¡ ½ÇÇàµË´Ï´Ù! µî·Ï µÈ ¼ºê ·çƾÀÇ ½ÇÇà ¼ø¼ ¼ø¼ ±ÔÄ¢Àº ÇÁ·Î±×·¥ Á¾·á Áß ÇÁ·Î±×·¥¿¡ ´ëÇØ °´Ã¼ - Æı« Áß¿¡ °´Ã¼¿¡ ´ëÇØ µ¿ÀÏÇÕ´Ï´Ù. ATExit ÇÔ¼ö / ¸Þ¼Òµå´Â ¼ºê ·çƾ À̸§ ¶Ç´Â ÂüÁ¶¸¦ ¼±ÅÃÀûÀ¸·Î Àü´ÞÇÏ¿© Àμö ¸ñ·ÏÀ» Àü´ÞÇؾßÇÕ´Ï´Ù. ÇÁ·Î±×·¥ / °´Ã¼ ³ª°¡±â ½Ã°£¿¡ ±×°ÍÀ» È£Ãâ ÇÒ ¼ö ÀÖ½À´Ï´Ù. À͸íÀÇ ¼ºê ·çƾ ÂüÁ¶´Â atexit¿¡ "Closures"(perlref¿¡ ¼³¸íµÇ¾î ÀÖÀ½)·Î Àü´ÞµÇ¾ú½À´Ï´Ù. ¼ºê ·çƾ À̸§ÀÌ ÁöÁ¤µÈ °æ¿ì (¼ºê ·çƾ ÂüÁ¶¿Í´Â ¹Ý´ë·Î) ¼ºê ·çƾ À̸§¿¡ ¸í½Ã Àû ÆÐÅ°Áö Á¢µÎ»ç°¡ ÀÖÁö ¾ÊÀ¸¸é È£ÃâÀÚÀÇ ÇöÀç ÆÐÅ°ÁöÀÇ ¼ºê ·çƾ À̸§À̶ó°í °¡Á¤ÇÕ´Ï´Ù. ÁöÁ¤µÈ ¼ºê ·çƾ¿¡ ´ëÇÑ ÂüÁ¶°¡ ȹµæµÇ°í È£Ãâ Àμö°¡ ÁöÁ¤µÈ °æ¿ì ÁöÁ¤µÈ Àμö·Î ¼ºê ·çƾÀ» È£ÃâÇÏ´Â Æó¼â·Î "·¡ÇÎ µÈ"µË´Ï´Ù. °á°ú ¼ºê ·çƾ ÂüÁ¶°¡ ÇÁ·Î±×·¥ (ATEXIT) ¶Ç´Â ATEXIT °´Ã¼ ($ EXITOBJECT-> ATEXIT)¿¡ ´ëÇÑ exit-handling ¼ºê ·çƾ ¸ñ·Ï Àü¸é¿¡ Ãß°¡µÇ°í ÂüÁ¶°¡ È£ÃâÀÚ¿¡°Ô ¹ÝȯµË´Ï´Ù (´ÜÁö ¿øÇÏ´Â °æ¿ì ³ªÁß¿¡ RMEXIT¸¦ »ç¿ëÇÏ¿© µî·Ï Ãë¼ÒÇÕ´Ï´Ù. ÁÖ¾îÁø ¼ºê ·çƾÀ» µî·Ï ÇÒ ¼ö¾ø´Â °æ¿ì °ª 0ÀÌ ¹ÝȯµË´Ï´Ù. rmexit ÇÔ¼ö / ¸Þ¼Òµå´Â ÀÌÀü È£Ãâ¿¡¼ atexit¿¡ ´ëÇÑ ÀÌÀü È£Ãâ¿¡ ÀÇÇØ ¹Ýȯ µÈ Çϳª ÀÌ»óÀÇ ¼ºê ·çƾ ÂüÁ¶¸¦ Àü´ÞÇؾßÇÕ´Ï´Ù. °¢ Àμö´Â ÇÁ·Î±×·¥ (rmexit) ¶Ç´Â atexit °´Ã¼ ($ exitObject-> rmexit)ÀÇ Á¾·á ÇÏÀ§ ·çƾ ¸ñ·ÏÀ»º¸°í ¸ñ·Ï¿¡¼ ù ¹ø° ÀÏÄ¡ Ç׸ñÀ» Á¦°ÅÇÕ´Ï´Ù. Àμö°¡ ÁÖ¾îÁöÁö ¾ÊÀ¸¸é ¸ðµÎ ÇÁ·Î±×·¥ ¶Ç´Â °´Ã¼ Á¾·á Çڵ鷯°¡ µî·ÏµÇÁö ¾Ê½À´Ï´Ù! ¹Ýȯ µÈ °ªÀº ¼º°øÀûÀ¸·Î µî·ÏµÇÁö ¾ÊÀº ¼ºê ·çƾ ¼öÀÔ´Ï´Ù. °´Ã¼ »èÁ¦ ½Ã°£Àº atexit ¸ðµâÀÇ Æı« {} ¼ºê ·çƾÀÌ ATEXÀÇ ¼ºê ·çƾ ÂüÁ¶¸¦ ¹Ýº¹ÇÕ´Ï´Ù. IT °´Ã¼¸¦ ÄÑ°í °¢°¢ÀÇ ¼ºê ·çƾÀÌ Áï½Ã Å¥ Àü¸é¿¡¼ Á¦°ÅµÇ±â Á÷Àü¿¡ Å¥ Àü¸é¿¡¼ Á¦°ÅµÊ). ÇÁ·Î±×·¥ Á¾·á ½Ã°£¿¡¼ atexit ¸ðµâÀÇ end {} ºí·ÏÀº exit_subs ¸Þ¼Òµå°¡ ¸®ÅÏ ÇÑ ¹è¿ÀÇ ¼ºê ·çƾÀ» ¹Ýº¹ÇÏ°í °¢°¢ÀÇ ¼ºê ·çƾÀÌ Áï½Ã Å¥ Àü¸é¿¡¼ Á¦°ÅµÇ¸é °¢ ¼ºê ·çƾÀÌ Á¦°ÅµË´Ï´Ù.) ...¿¡ µÎ °æ¿ì (ÇÁ·Î±×·¥ Ãⱸ ¹× °´Ã¼ Æı«) µÎ °æ¿ìÀÌ Å¥ÀÇ ¼ºê ·çƾÀº ÃÖÃÊÀÇ ¼ø¼·Î È£ÃâµË´Ï´Ù (atexit¿¡ µî·Ï µÈ ¿ª¼ø). ¿ä±¸ »çÇ× : ¡¤ Perl.
atexit. °ü·Ã ¼ÒÇÁÆ®¿þ¾î
½ºÄ®¶ó :: ¼Ó¼º
½ºÄ®¶ó :: ¼Ó¼ºÀº ½ºÄ®¶ó º¯¼ö¿¡ ·±Å¸ÀÓ ¼Ó¼ºÀ» Æ÷ÇÔÇÏ´Â Perl ¸ðµâ ÆÐÅ°ÁöÀÔ´Ï´Ù. ...
194