Áö½ÄÀº Çϴ÷Πºñ»óÇÏ´Â ³¯°³¿Í °°´Ù

Àüü |  ¸®´ª½º (139)   À©µµ¿ì (34)   ÇØÅ·/º¸¾È (81)   PHP (12)   PERL (82)   ½© (24)   ±â Ÿ (28)   IT839 (14)   ¿À¶óŬ (8)   ¾ÆÆÄÄ¡ (49) 

 hakkoo ( 2004-06-15 11:28:01, Hit : 2513
 ¼­ºê·çƾ ÀÛ¼º ¹× È£Ãâ¹ý

XII. ¼­ºê·çƾ ÀÛ¼º ¹× È£Ãâ¹ý
½ºÅ©¸³Æ®¸¦ ÀÛ¼ºÇÏ´Ù º¸¸é, ¹Ýº¹ÀûÀ¸·Î ½ÇÇàµÇ´Â ·çƾÀ» Çѹø¸¸ Á¤ÀÇÇϰí, ¸ÞÀÎ ·çƾ¿¡¼­´Â À̸¦ È£ÃâÇϵµ·Ï ÇÏ°í ½ÍÀ» °æ¿ì°¡ ÀÖ´Ù. ¼­ºê·çƾ(Subroutine)Àº ¸ÞÀÎ ·çƾ¿¡°Ô È£ÃâÀ» ¹Þ¾Æ ½ÇÇàµÇ´Â µ¶¸³ÀûÀÎ ¸ðµâÀÌ´Ù.
¼­ºê·çƾÀº ´ÙÀ½°ú °°Àº ÇüÅ·Π±¸¼ºµÈ´Ù.

sub [subroutine-name] {

  [subroutine-body]

}

´ÙÀ½Àº ¼­ºê·çƾÀ» »ç¿ëÇÏ´Â ¿¹ÀÌ´Ù.
...
&my_sub;  # ¼­ºê·çƾ È£Ãâ
...


sub my_sub { # È£ÃâµÇ´Â ¼­ºê·çƾÀÇ ½ÃÀÛ

    $myint = 1;
    print $myint;

} # È£ÃâµÇ´Â ¼­ºê·çƾÀÇ ³¡


±×¸®°í, ¼­ºê·çƾ¿¡°Ô ÀÎÀÚ(Arguments)¸¦ Àü´ÞÇÒ ¼ö ÀÖ´Ù. ÀÎÀÚ´Â ¼­ºê·çƾÀÌ ½ÇÇàµÇ´Âµ¥ ÇÊ¿äÇÑ º¯¼ö°ªÀ» ¶æÇϸç, ¸ÞÀÎ ·çƾÀÌ Àü´ÞÇØÁØ ÀÎÀÚ °ª¿¡ ÀÇÇØ ¼­ºê·çƾÀÇ ½ÇÇà °á°ú°¡ ´Þ¶óÁö°Ô µÈ´Ù.
sub [subroutine-name] {

  local([argument-1], [argument-2], ...) = @_;

  [subroutine-body]

}

´ÙÀ½Àº ÀÎÀÚ¸¦ »ç¿ëÇÏ´Â ¿¹ÀÌ´Ù.
...
&my_sub(1);
...


sub my_sub {

    local($myint) = @_;
    print $myint;

}


"local" À̶ó´Â »õ·Î¿î ÇÔ¼ö°¡ µîÀåÇß´Ù. PERL¿¡¼­´Â º¯¼ö ¼±¾ð½Ã Ưº°ÇÏ°Ô ÁöÁ¤ÇØ ÁÖÁö ¾Ê´Â ÀÌ»ó ¸ðµç º¯¼ö¸¦ Àü¿ª º¯¼ö(global)·Î ¸¸µé¾î ¹ö¸°´Ù. ±×·¯³ª, ÀÌ local ÇÔ¼ö¸¦ ¾²¸é, ÀÌ º¯¼öÀÇ °¡½Ã¹üÀ§(scope)´Â ÀÌ ¼­ºê·çƾ ¾ÈÀ¸·Î Á¦ÇѵȴÙ. ÀÌ ¼­ºê·çƾ ¹Û¿¡¼­ ÀÌ º¯¼ö¸¦ ÂüÁ¶ÇÒ ¼ö ¾ø°Ô µÈ´Ù. À̰ÍÀ» Áö¿ª º¯¼ö(local variable)¶ó ÇÑ´Ù.
±×¸®°í "@_" ¸¦ ÀÌ¿ëÇØ¼­ ÀÎÀÚ°¡ ¸î°³À̵çÁö ´Ù ¹Þ¾Æ ³¾ ¼ö ÀÖ´Ù.
local($mylocal, $mylocal2, $mylocal3) = @_;

print "$mylocalt$mylocal2t$mylocal3";

±×³É Áö¿ª º¯¼ö¸¸ ¼±¾ðÇÏ·Á¸é ´ÙÀ½°ú °°ÀÌ ½á ÁÖ¸é µÈ´Ù.
local($mylocal);

Áö¿ªº¯¼ö¸¦ ÃʱâÈ­ ÇÒ ¼ö ÀÖ´Ù, ´ÙÀ½°ú °°ÀÌ ÇÏ¸é µÈ´Ù.
local($mylocal) = 1;
local(@local_array) = (1, 2, 3);

Áö¿ªº¯¼ö°¡ ¿©·¯°³ÀÏ °æ¿ì¿¡´Â ´ÙÀ½°ú °°ÀÌ ÇÑ´Ù.
local($mylocal, $mylocal2, $mylocal3) = (1, 2, 3);

print "$mylocalt$mylocal2t$mylocal3";

±×¸®°í, PERLÀÇ ¼­ºê·çƾÀº ±× °³³äÀ» ´õ ³Ñ¾î¼­¼­, ÇÔ¼ö(function)ó·³ ¹Ýȯ°ª(return value)À» ¹ÝȯÇÒ ¼ö ÀÖ´Ù. ¾î¶² °ªÀ» ¹ÝȯÇÏ´Â ¹æ¹ýÀº ¼­ºê·çƾÀÇ ¸Ç ³¡¿¡ ¹ÝȯÇÏ·Á´Â ½ºÄ®¶ó º¯¼ö¸í¸¸ ½á Áְųª ¹ÝȯÇÏ·Á´Â °ªÀ» Á÷Á¢ ½á ÁÖ¸é µÈ´Ù.
sub [subroutine-name] {

  local([argument-1], [argument-2], ...) = @_;

  [subroutine-body]

  [return-value];

}

´ÙÀ½Àº ¹Ýȯ°ªÀ» ÀÌ¿ëÇÏ´Â ¿¹ÀÌ´Ù.
...
$myreturn = &my_sub;
print $myreturn;
...

sub my_sub {

    $myint = 1;

    $myint;  # ¹Ýȯ°ª(Áï 1ÀÓ)

}


ÀÌ Àå¿¡¼­´Â PERLÀÇ ¿ÏÀüÇÑ ±âÃʸ¸ ¹è¿ü´Ù. »ç½Ç ÀÌ ³»¿ë¸¸ °¡Áö°í ½ÇÁ¦ÀûÀÎ ½ºÅ©¸³Æ®¸¦ ÀÛ¼ºÇϱ⿡´Â ´Ù¼Ò ¹«¸®ÀÌ´Ù. ¾ÕÀ¸·Î´Â ½ÇÁ¦ ¹æ¸í·Ï ¼Ò½º¸¦ °¡Áö°í º¸´Ù ¼¼·ÃµÈ PERL ÇÁ·Î±×·¡¹Ö ±â¹ýÀ» ¹è¿ì°Ô µÉ °ÍÀÌ´Ù. ±×·¯³ª, ÀÌ Àå¿¡¼­ ¹è¿î ³»¿ëÀÌ ¾ÕÀ¸·ÎÀÇ PERL ½ºÅ©¸³Æ® ÀÛ¼º¿¡ À־ ±Ù°£ÀÌ µÉ °Í¸¸Àº È®½ÇÇÏ´Ù. °ÇÅõ¸¦ ºó´Ù.




    








82   [PERL] Deprecated: Function eregi() is deprecated ¿¡·¯ ¼öÁ¤ ½ºÅ©¸³Æ®  hakkoo 2010/08/04 290
81   [PERL] Perl script to monitor disk space and send an email [2]  hakkoo 2008/01/16 2232
80   [PERL] Perl DBI ¸ðµâ ¿¹Á¦ [1]  hakkoo 2006/03/15 3104
79   [PERL] qmail-remote ÀÎÅͼÁÆ® (¹ß¼Û·Î±× ¸¸µé±â)  hakkoo 2005/10/03 2882
78   [PERL] ¿ø°Ý ¸ð´ÏÅ͸µ [12]  hakkoo 2005/08/25 2998
77   [PERL] ¸ÞÀÏ ¸±·¹ÀÌ Á¡°Ë  hakkoo 2005/08/04 2730
76   [PERL] Using Regular Expression  hakkoo 2005/02/05 2643
75  ºñ¹Ð±ÛÀÔ´Ï´Ù [PERL] B/D¿¡ arp ÆÐŶÀ» º¸³» mac Á¤º¸ °»½Å  hakkoo 2004/11/24 22
74   [PERL] SYN_Flooding °ø°ÝÀ» °¨Áö  hakkoo 2004/10/22 2649
73  ºñ¹Ð±ÛÀÔ´Ï´Ù [PERL] ip_alive.pl  hakkoo 2004/10/13 20
72  ºñ¹Ð±ÛÀÔ´Ï´Ù [PERL] technote_patch.pl  hakkoo 2004/10/09 18
71  ºñ¹Ð±ÛÀÔ´Ï´Ù [PERL] technote_id_search.pl  hakkoo 2004/10/07 8
70  ºñ¹Ð±ÛÀÔ´Ï´Ù [PERL] vuserinfo.pl  hakkoo 2004/08/24 24
69   [PERL] ¡Ù CPAN module·Î ÀνºÅç ¹Ù·ÎÇÏ±â  hakkoo 2004/07/29 2654
68   [PERL] Net::Telnet ¸ðµâ  hakkoo 2004/07/09 2557
67   [PERL] ¿©·¯°³ÀÇ ¹è¿­À̳ª ÇØ½¬ ¹ÝȯÇϱâ(¼­ºê·çƾ) [18]  hakkoo 2004/06/15 3361
66   [PERL] CGI ȯ°æ º¯¼ö  hakkoo 2004/06/15 2716
  [PERL] ¼­ºê·çƾ ÀÛ¼º ¹× È£Ãâ¹ý  hakkoo 2004/06/15 2513
64   [PERL] ¡Ú ÆÄÀÏ ÀÔÃâ·Â ¹× °ü¸®  hakkoo 2004/06/15 2711
63   [PERL] HTML ¹®Àå Ãâ·ÂÇÏ±â  hakkoo 2004/06/14 2458

1 [2][3][4][5]
 

Copyright 1999-2010 / skin by sattonari