LogIn E-mail
¼³°èÀ̾߱â
[CGI]GET and POST
# 72 JMJS    06.11.20 16:03

CGIÀÇ ±âÃÊ

1. CGI¶õ ¹«¾ùÀΰ¡?


CGI´Â Common Gateway InterfaceÀÇ ¾àÀÚÀÌ´Ù. À¥ ºê¶ó¿ìÀú(Netscape Communucator, Internet Explorer)¿¡¼­´Â HTML·Î ¿©·¯ °¡Áö Á¤º¸¸¦ ó¸®ÇÏÁö¸¸, ±× ±â´É¸¸À¸·Î ¸ðµç Á¤º¸Ã³¸®¸¦ ´Ù ÇÒ ¼ö ¾ø´Ù. À̰ÍÀ» º¸ÃæÇϱâ À§ÇÑ ¿ÜºÎ ÇÁ·Î±×·¥°ú À¥¼­¹ö(HTTP Server)°£ÀÇ ¿¬°á ¿ªÇÒÀ» Çϱâ À§ÇÑ ±Ô¾àÀÌ CGIÀÌ´Ù. ¶Ç´Â ³ÐÀº Àǹ̷ΠCGI¸¦ ¼öÇàÇÏ´Â ¿ÜºÎ ÇÁ·Î±×·¥À» Æ÷ÇÔÇÏ¿© ¸»Çϱ⵵ ÇÑ´Ù. ¿¹¸¦ µé¾î, ȨÆäÀÌÁö¿¡ ¹æ¹®°´µéÀÇ comment¸¦ ¹ÞÀ» ¼ö ÀÖ´Â ¹æ¸í·ÏÀ» ¸¸µé·Á°í ÇÒ ¶§, À¥¿¡¼­ ±¸ÇöÇÏ´Â HTML¸¸À¸·Î´Â ÇØ°áÇÒ ¼ö ¾ø´Ù. ±×·¡¼­ ¿ÜºÎ ÇÁ·Î±×·¥ÀÌ ÇÊ¿äÇѵ¥, ÀÌ ¶§ ¿ÜºÎ ÇÁ·Î±×·¥°ú À¥ °£¿¡ ¼­·Î ÁÖ°í ¹ÞÀ» ¼ö ÀÖ´Â ±Ô¾àÀ» CGI¶ó°í ÇÑ´Ù. ±×¸®°í,±× ¶§ »ç¿ëÇÏ´Â ÇÁ·Î±×·¥À» gateway ÇÁ·Î±×·¥À̶ó°í Çϴµ¥ À̰ÍÀ» ÈçÈ÷ CGI ÇÁ·Î±×·¥(ȤÀº ½ºÅ©¸³Æ®)À̶ó°í ÇÑ´Ù. ÀÌ CGIÇÁ·Î±×·¥Àº Åë»óÀûÀ¸·Î C/C++ ³ª PERLȤÀº UNIX Shell, Tcl/Tk µîÀ» »ç¿ëÇÏ¿© ±¸ÇöÇÑ´Ù.


¡Ø CGIÀÇ µ¿ÀÛ¿ø¸®

CGIÀÇ µ¿ÀÛ¿ø¸®¸¦ ¾Ë±â À§Çؼ­´Â ¿ì¼± À¥À» ÀÌÇØÇØ¾ß ÇÑ´Ù. ÇѸ¶µð·Î À¥À̶õ 'ÇöÀç±îÁö °í¾ÈµÈ Á¤º¸¿Í Åë½Å ½Ã½ºÅÛÀÇ ÁýÇÕü'¶ó°í Á¤ÀÇÇÒ ¼ö ÀÖ´Ù. Áö±Ý±îÁö´Â Á¤º¸¸¦ ¸ð¾Æ¼­ »Ñ¸®±â¸¸ ÇÒ ¼ö ÀÖ´Â ´Ü¹æÇ⠽ýºÅÛÀ¸·Î TCP/IP¶ó´Â ³×Æ®¿öÅ©¿¡¼­ Ŭ¶óÀÌ¾ðÆ® ¼­¹ö ¸ðµ¨·Î ¿òÁ÷À̰í ÀÖ´Ù. Áï, Ŭ¶óÀÌ¾ðÆ®´Â À¥ ºê¶ó¿ìÀú°¡ µÇ°í, ¼­¹ö´Â HTTP ¼­¹ö°¡ µÈ´Ù. ±×¸®°í ±× »çÀÌ¿¡ ÁÖ°í¹Þ´Â ³»¿ëÀº HTTP¶ó°í ÇÏ´Â ÇÁ·ÎÅäÄÝ·Î Çì´õ¿Í HTML¹®¼­°¡ µÈ´Ù. Áï, À¥¿¡ ´ëÇÑ »ç¿ëÀÚ ¿ä±¸°¡ °è¼ÓÇØ¼­ ´Ã¾î³ª¸é¼­ Á¤ÀûÀÎ HTML¹®¼­¸¦ ½Ç¾î³ª¸£´Â À¥¿¡¼­ ÀÎÅÍ·¢Æ¼ºê(interactive)ÇÏ°í µ¿ÀûÀÎ(active) ³»¿ëÀ» Àü´ÞÇÒ ¼ö ÀÖµµ·Ï È®ÀåµÇ¾î °¡°í ÀÖ´Ù.

ÀÌ CGI¸¦ ±¸ÇöÇϱâ À§Çؼ­´Â º¸Åë À¥ ÂÊ¿¡¼­´Â FORM ű׸¦ ÅëÇØ¼­ »ç¿ëÀÚÀÇ ÀԷ°ªµéÀ» À¥¼­¹ö(httpd)·Î º¸³»°í, ¼­¹ö¿¡¼­´Â ±× °ªÀ» CGIÇÁ·Î±×·¥¿¡°Ô ÀԷ°ªµéÀ» ³Ñ°ÜÁØ´Ù.


µ¥ÀÌŸÀÇ È帧À» ¾Ë¾Æ º¸¸é,
(1) ¿äûÀÚ, Áï Ŭ¶óÀÌ¾ðÆ®´Â À¥ ºê¶ó¿ìÀú¸¦ ÀÌ¿ëÇÏ¿© ÀÔ·Â ¾ç½Ä(FORM)¿¡ µ¥ÀÌŸ¸¦ ÀÔ·ÂÇϰųª ȤÀº ±âŸ ¹æ¹ýÀ¸·Î ¼­¹ö¿¡ º¸³¾ µ¥ÀÌŸ¸¦ ÁغñÇÑ´Ù.

(2) À¥ ºê¶ó¿ìÀú´Â µ¥ÀÌŸ¸¦ ÀÔ·Â¹Þ¾Æ Á¢¼ÓµÇ¾î ÀÖ´Â À¥ ¼­¹ö·Î TCP/IP¸¦ ÅëÇØ µ¥ÀÌŸ¸¦ º¸³½´Ù.

(3) À¥ ¼­¹öÀÇ µ¥¸ó(Daemon)Àº ÀÌ µ¥ÀÌŸ¸¦ CGI ȯ°æº¯¼ö(QUERY_STRING) => GET Method ȤÀº Ç¥ÁØ ÀÔ·Â(Standard Input) => POST Method À¸·Î ¹Þ¾Æ CGI ÇÁ·Î±×·¥¿¡ ³Ñ±ä´Ù.

(4) ¿©±â¼­ CGI ÇÁ·Î±×·¥ÀÌ ÀÛµ¿ÇÏ°Ô µÈ´Ù. ÇÁ·Î±×·¥Àº ¼­¹ö ³»¿¡ ÀÖ´Â ASCII, BINARY ÆÄÀÏ È¤Àº µ¥ÀÌŸº£À̽º¿¡ Á¢¼ÓÇÏ¿© ÀԷ ȤÀº Ãâ·Â µîÀÇ ÀÏÀ» ¼öÇàÇÏ°í ¸®ÅÏµÈ °á°ú¸¦ ¹Þ´Â´Ù.

(5) CGI ÇÁ·Î±×·¥Àº ÀÌ °á°ú¸¦ ProcessingÇϰí Àû´çÇÑ MIME(Multipurpose Internet Mail Extension) TypeÀ¸·Î Æ÷¸ËÆÃ ÇÑ ÈÄ ´Ù½Ã µ¥¸óÀ¸·Î ³Ñ°ÜÁØ´Ù.

(6) µ¥¸óÀº Æ÷¸ËÆÃµÈ °á°ú¸¦ À¥ ºê¶ó¿ìÀú, Áï Ŭ¶óÀÌ¾ðÆ®¿¡°Ô ´Ù½Ã TCP/IP¸¦ ÀÌ¿ëÇÏ¿© ³Ñ°ÜÁØ´Ù.

(7) À¥ ºê¶ó¿ìÀú´Â MIME Type¿¡ µû¶ó CGI ÇÁ·Î±×·¥À¸·ÎºÎÅÍÀÇ µ¥ÀÌŸ¸¦ ºê¶ó¿ìÀú¿¡ º¸¿©ÁØ´Ù.



¡Ø CGI¶ó´Â °ÍÀÌ ±¸ÇöµÇ±â À§Çؼ­´Â ´ÙÀ½°ú °°Àº 4°¡Áö°¡ ÇÊ¿äÇÏ´Ù.

(1) À¥ ºê¶ó¿ìÀú(³Ý½ºÄÉÀÌÇÁ, ÀͽºÇ÷η¯ µî...)
(2) À¥ ¼­¹ö
(3) À¥ ¼­¹ö ³»ÀÇ °øÀ¯°¡´ÉÇÑ ÀÚ¿ø(HTML¹®¼­, ±âŸ ÅØ½ºÆ® ÆÄÀÏ, À̹ÌÁö ÆÄÀÏ, ¸ÖƼ¹Ìµð¾î °´Ã¼, µ¥ÀÌŸº£À̽º...)
(4) ±×¸®°í, °¡Àå Áß¿äÇÑ CGI ÇÁ·Î±×·¥


2. ÀԷ°ª Àü´Þ¹æ½Ä

À¥ ÂÊ¿¡¼­ ÀԷ°ªµéÀ» ³Ñ°ÜÁÖ´Â FORM ű×ÀÇ ±¸¼ºÀº º¸Åë ´ÙÀ½°ú °°´Ù.
  <FORM METHOD=get/post ACTION="http://www.abc.com/cgi-bin/abc.cgi">


¹°·Ð À̰ÍÀº º¸ÆíÀûÀ¸·Î »ç¿ëÇÏ´Â °æ¿ìÀÇ ¿¹À̰í, ÀÌ FORM ű׿¡´Â ´Ù¸¥ ¸¹Àº ¼Ó¼ºµéÀÌ ÀÖ´Ù.
¿©±â¼­ METHOD´Â post¿Í get µÎ °³ÀÇ ¹æ½ÄÀÌ Àִµ¥, ÀÌ ¹æ½Ä¿¡ ´ëÇØ¼­ ¾Ë¾Æº¸ÀÚ.    

     2-1. GET METHOD

¢Ñ GET ¹æ½ÄÀº À¥ ºê¶ó¿ìÀú·ÎºÎÅÍÀÇ ÀÔ·Â µ¥ÀÌŸ¸¦ À¥ ¼­¹ö ³»ÀÇ CGI ȯ°æº¯¼ö Áß QUERY_STRING À̶ó´Â º¯¼ö°¡ ¹Þ¾Æµé¿© ÇÁ·Î±×·¥À» ¼öÇàÇÏ´Â ¹æ½ÄÀÌ´Ù.

FORM ű׿¡ METHOD=getÀ¸·Î Çϰųª »ý·«ÇÏ¸é »ç¿ëÀÚÀÇ ÀԷ°ªµéÀÌ È¯°æ º¯¼ö (Environment Variable)¿¡ ÀúÀåµÇ¾î ³Ñ°ÜÁø´Ù. Áï, °¢ ÀԷ°ªµéÀÌ ±âº» URL¿¡ ºÙ´Â Àμö(PARAMETER)·Î¼­ ÷°¡µÇ¾î CGIÇÁ·Î±×·¥À¸·Î °ªÀ» ³Ñ°Ü ÁÖ°Ô µÈ´Ù.

¹°·Ð ÀÌ get METHOD´Â FORM ű׸¦ »ç¿ëÇÏÁö ¾Ê°í ¹Ù·Î URL¿¡ Àμö¸¦ ÷°¡ÇÏ¿© »ç¿ëÇÒ ¼öµµ ÀÖ´Ù. (GET¹æ½ÄÀ¸·Î µ¥ÀÌÅ͸¦ º¸³¾ °æ¿ì CGI ÇÁ·Î±×·¥Àº ÀԷ°ªÀ» ¹Ýµå½Ã QUERY_STRING À̶ó´Â CGI ȯ°æ º¯¼ö·Î ¹Þ¾Æ¾ß ÇÑ´Ù. ºê¶ó¿ìÀú·ÎºÎÅÍ ³Ñ¾î°¡´Â µ¥ÀÌÅÍ´Â "À̸§=°ª"ÀÇ Çü½ÄÀ¸·Î ³Ñ¾î°£´Ù.)

¿¹¸¦ µé¾î, http://www.abc.com/cgi-bin/abc.cgi?First+Name=foo&Last+Name=bar ¿Í °°Àº Çü½ÄÀ¸·Î »ç¿ëµÈ´Ù.

ÀÌ GET METHOD¸¦ ÀÌ¿ëÇÏ¸é ±× ÀԷ°ªµéÀÌ È¯°æº¯¼öÀÇ ÇϳªÀÎ QUERY_STRING ¿¡ µé¾î°¡¼­ Àü´ÞµÇ´Âµ¥, CGI½ºÅ©¸³Æ®´Â ±× QUERY_STRING¿¡ µé¾î ÀÖ´Â °ªÀ» Àд´Ù. ÀÌ ¶§ ±× °ªµéÀº ÀÔ·ÂµÈ ±×´ë·Î ³Ñ¾î°¡´Â °ÍÀÌ ¾Æ´Ï¶ó ¼­¹ö¿¡ ÀÇÇØ ¿©·¯°¡Áö·Î º¯È¯(ÀÎÄÚµù)µÇ¾î ³Ñ¾î°¡´Âµ¥ CGI½ºÅ©¸³Æ®¿¡¼­´Â ±× °ªµéÀ» ÇØµ¶(decoding)ÇØ¾ß ÇÑ´Ù.

ÀÌ GET METHOD´Â º¸Åë ÀԷ°ªµéÀÌ ¸¹Áö ¾Ê´Â °æ¿ì ȤÀº ±×³É URL¿¡ ºÙ´Â ÆÄ¶ó¹ÌÅÍ·Î ³Ñ°Ü¼­ CGI½ºÅ©¸³Æ®·Î Àü´ÞÇÒ ¶§¿¡ »ç¿ëÇÑ´Ù.


     2-2. POST METHOD

¢Ñ POST ¹æ½ÄÀº À¥ ºê¶ó¿ìÀú·ÎºÎÅÍÀÇ ÀÔ·Â µ¥ÀÌŸ¸¦ À¥ ¼­¹ö°¡ Ç¥ÁØ ÀÔ·Â(Standard Input)À¸·Î ¹Þ¾Æµé¿© ÇÁ·Î±×·¥À» ¼öÇàÇÏ´Â ¹æ½ÄÀÌ´Ù.

FORMÅÿ¡¼­ METHOD=post·Î Çϸé, get METHOD°¡ ȯ°æº¯¼öÁßÀÇ ÇϳªÀÎ QUERY_STRINGÀ» ÅëÇØ Àü´ÞµÇ´Â °Í°ú ´Þ¸® stdin(standard input:Ç¥ÁØÀÔ·Â) À» ÅëÇØ¼­ Àü´ÞµÈ´Ù. get METHOD°¡ Àμö¸¦ ÅëÇØ¼­ Àü´ÞµÇ¹Ç·Î Ä¿¸Çµå¶óÀÎÀÇ ±æÀÌ¿¡ ÀÇÇÑ Á¦ÇÑÀ» ¹Þ´Â ¹Ý¸é¿¡, post METHOD´Â stdinÀ» ÀÌ¿ëÇϹǷΠµ¥ÀÌŸ¾çÀÇ Á¦ÇÑÀÌ ¾ø´Ù. ¶ÇÇÑ post METHOD¿¡¼­µµ ȯ°æº¯¼öµéÀº stdin°ú ÇÔ²² Àü´ÞµÈ´Ù. ±×¸®°í post¹æ½Äµµ ¸¶Âù°¡Áö·Î ÀԷ°ªµéÀÌ encodingµÇ¾î ³Ñ¾î¿ÈÀ¸·Î CGI¿¡¼­ ±× °ªµéÀ» decodingÇØ¾ßÇÑ´Ù.

À¥ ¼­¹ö¿¡¼­ µ¥ÀÌÅ͸¦ º¸³»¸é read ÇÔ¼ö¸¦ ½á¼­ STDIN(Perl¿¡¼­ Standard inputÀ» ³ªÅ¸³½´Ù.) À» ÅëÇØ CONTENT_LENGTH ȯ°æº¯¼ö¿¡ ¹®ÀÚ¿­ÀÇ ±æÀ̰¡ ÀúÀåµÈ´Ù.
±×·¯³ª, ÇѰ¡Áö ´Ù¸¥ Á¡Àº, POST ¹æ½ÄÀ¸·Î µ¥ÀÌŸ¸¦ ³Ñ±æ ¶§´Â ¹Ýµå½Ã ÀÔ·Â ¾ç½Ä ¾È¿¡¼­ ÀÔ·ÂµÈ µ¥ÀÌŸ¿©¾ß ÇÑ´Ù´Â °ÍÀÌ´Ù.
ºê¶ó¿ìÀú¿¡¼­ Á÷Á¢ LocationÀ» ¿­ ¼öµµ ¾ø°í, ÇÏÀÌÆÛ¸µÅ©·Îµµ ±¸ÇöÇÒ ¼ö ¾ø´Ù. ±×¸®°í, GET ¹æ½ÄÀ¸·Î º¸³»´Â µ¥ÀÌŸÀÇ ¾ç¿¡´Â ÇѰ谡 Àִµ¥, POST ¹æ½ÄÀº ±×·± Á¦ÇÑÀÌ ¾ø´Ù.

±×¸®°í, Ãâ·Â °á°ú°¡ ³ªÅ¸³¯ ¶§ ºê¶ó¿ìÀú¿¡ º¸ÀÌ´Â °á°ú ¹× LocationÀº ´ÙÀ½°ú °°´Ù.
¿¹) http://www.foo.com/cgi-bin/mycgi.cgi


3. ȯ°æ º¯¼ö(Environment Variables)

 ; À¥ ¼­¹ö°¡ CGI¸¦ À§ÇØ »ç¿ëÇÏ´Â º¯¼ö
 

ȯ°æº¯¼ö ¼³¸í(¿¹Á¦)
 
SERVER_SOFTWARE
 ½ºÅ©¸³Æ®¸¦ È£ÃâÇÑ HTTP ¼­¹öÀÇ À̸§/¹öÀü (NCSA/1.5.1, HTTP/1.1)
 
SERVER_NAME
 À¥¼­¹öÀÇ µµ¸ÞÀÎ À̸§À̳ª IPÁÖ¼Ò (sarim.changwon.ac.kr)
 
GATEWAY_INTERFACE
 ¼­¹ö°¡ Áö¿øÇÏ´Â CGI ÀÎÅÍÆäÀ̽ºÀÇ ¹öÀü (CGI/1.1)
 
SERVER_PROTOCOL
 Å¬¶óÀÌ¾ðÆ®°¡ ¿äû½Ã »ç¿ëµÈ ÇÁ·ÎÅäÄÝ À̸§/¹öÀü (HTTP/1.0)
 
SERVER_PORT
 ¿¬°áµÈ Æ÷Æ® ¹øÈ£ (80)
 
REQUEST_METHOD
 ½ºÅ©¸³Æ®¸¦ È£ÃâÇÑ ¹æ¹ý (GET, POST)
 
HTTP_ACCEPT
 Å¬¶óÀÌ¾ðÆ®°¡ ¹Þ¾ÆµéÀÏ ¼ö ÀÖ´Â MIMEÀÇ À¯Çü (image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, video/mpeg..)
 
HTTP_COOKIE
 
 
PATH_INFO
 Å¬¶óÀ̾ðÆ®ÀÇ URL¿¡ ºÙ¾î ÀÖ´Â º°µµÀÇ °æ·Î Á¤º¸ (URL¿¡¼­ µð·ºÅ丮 Á¤º¸, /index.html)
 
PATH_TRANSLATED
 Å¬¶óÀÌ¾ðÆ®°¡ URL¿¡ ºÙÀÎ º°µµÀÇ °æ·Î¸¦ ½ºÅ©¸³Æ®ÀÇ °æ·Î·Î º¯È¯ÇÑ °Í (/home/httpd/htdocs/index.html)
 
SCRIPT_NAME
 È£ÃâµÈ ½ºÅ©¸³Æ® ÆÄÀÏ À̸§ (/cgi-bin/test.cgi)
 
QUERY_STRING
 Å¬¶óÀÌ¾ðÆ®°¡ ½ºÅ©¸³Æ® À̸§°ú '?'·Î ±¸ºÐÇØ¼­ URL¿¡ ºÙ¿©¼­ Á¦°øÇÑ Á¤º¸
 
REMOTE_HOST
 È£½ºÆ® À̸§ (sarim.changwon.ac.kr)
 
REMOTE_ADDR
 IP ÁÖ¼Ò (203.246.1.3)
 
REMOTE_USER
 »ç¿ëÀÚ (jinakim)
 
AUTH_TYPE
 ÀÎÁõÀ¯ÇüÀ» ÀǹÌÇϴµ¥ ÇÁ·ÎÅäÄݰú ¼­¹ö¿¡ µû¶ó ´Ù¸£´Ù.
 
CONTENT_TYPE
 ½ºÅ©¸³Æ® °á°ú°ªÀÇ Á¾·ù
 
CONTENT_LENGTH
 ½ºÅ©¸³Æ® °á°ú°ªÀÇ ±æÀÌ
 
DOCUMENT_ROOT
 /home/httpd/htdocs

°Ô½Ã¹°: 115 °Ç, ÇöÀç: 1 / 1 ÂÊ
¹øÈ£ Á¦       ¸ñ ÀÛ¼ºÀÚ µî·ÏÀÏ ¹æ¹®
115  perl format JMJS 24.6.22 153
114  perl -p -i -e s/abc/def/g JMJS 24.3.26 169
113  Deleting from a Hash JMJS 24.1.23 180
112  yaml file Àбâ JMJS 23.11.30 221
111  alzipcon JMJS 22.11.26 280
110  file2date.pl JMJS 24.6.1 395
109  UTF-8, EUC-KR JMJS 19.12.15 368
108  wget.pl LWP Simple get JMJS 19.9.17 395
107  X JMJS 19.9.17 385
106  X JMJS 19.9.17 391
105  X JMJS 19.9.17 383
104  X JMJS 19.9.17 387
103  X JMJS 19.9.17 386
102  X JMJS 19.9.17 385
101  X JMJS 19.9.17 387
100  jsame.pl JMJS 09.5.21 1905
99  jos.pl JMJS 08.11.29 1642
98  jmngr.pl - jmjspro manager JMJS 08.11.29 1683
97  vhdl.pm JMJS 08.11.29 1647
96  jreg.pl JMJS 08.11.29 1635
95  jtree.pm JMJS 08.11.29 1714
94  w2c.pl JMJS 08.11.29 1676
93  jdread.pl JMJS 08.11.29 1453
92  ffile.zip ffilediff.pl JMJS 09.4.24 1507
91  rgb2ycbcr.pl JMJS 10.5.12 1810
90  proview.pl JMJS 08.11.29 1869
89  smi_shift.pl JMJS 10.10.3 1475
88  srt2smi.pl srtshift.pl JMJS 18.7.14 1679
87  Perl CGI Input Test, getenv.cgi JMJS 18.11.21 1361
86  hash JMJS 24.6.22 1625
85  tr a-z A-Z ġȯ , ´ë¼Ò¹®ÀÚ º¯È¯ , ¹®ÀÚ¿­ Á¶°Ç , ... JMJS 24.6.22 1426
84  JARRAY->jfunc JMJS 08.10.2 1394
83  ¼öÄ¡ÇÔ¼ö - ... JMJS 09.5.7 1867
82  ¿ªÇà·Ä3x3 JMJS 09.5.7 1912
81  hex2int.pl JMJS 10.9.12 2639
80  stat - file status º¸±â JMJS 07.12.16 1502
79  Perl Tip JMJS 24.6.22 2656
78  SMI file sync delay JMJS 07.7.18 1607
77  rmword.pl JMJS 07.6.18 1524
76  pack unpack JMJS 24.6.22 1426
75  [Perl]read_dir.pl JMJS 07.2.22 1707
74  [Perl]jtab2char - tab¹®ÀÚ¸¦ ƯÁ¤ char·Î ¹Ù²ãÁÖ±â JMJS 07.2.22 1681
73  Perl ¼ýÀÚ Sorting JMJS 11.5.17 1763
72  [CGI]GET and POST JMJS 06.11.20 3419
71  Perl Grammer JMJS 06.9.4 3002
70  Ç¥ÁØ ¸ðµâ JMJS 06.8.10 1895
69  Getopt::Long example JMJS 06.8.10 2091
68  array of array JMJS 06.4.22 1505
67  [HTML]Å×ÀÌºí ¹è°æ¿¡ ±×¸²³Ö±â JMJS 06.3.8 1592
66  l2w.pm - line to word JMJS 08.12.1 1581
65  make_random_chars JMJS 05.8.10 1425
64  mail º¸³»´Â script JMJS 05.3.23 1397
63  ½ÇÇàÆÄÀÏÀ» ½ÇÇà½Ã۰í Ç¥ÁØ¿¡·¯ Àбâ JMJS 09.2.25 1398
62  ÆË¾÷â(°øÁöâ)¶ç¿ì±â Jinsung 03.12.16 2500
61  print <<ENDLINE JMJS 03.12.5 1496
60  [HTML]Target JMJS 03.5.21 1523
59  [Perl]jutil.pm JMJS 03.5.3 1775
58  [Perl]jdiff.pl JMJS 02.6.6 1671
57  [Perl]cfilter.pm - commant filter JMJS 02.1.31 1717
56  [HTML]ÀÚµ¿À¸·Î ´Ù¸¥ ÆäÀÌÁö À̵¿ JMJS 02.1.19 1536
55  STDIN file open glob -w warning JMJS 24.6.22 1576
54  opendir , readdir , closedir JMJS 24.6.22 1585
53  rand_diff JMJS 01.10.23 1482
52  vcd2v.pl JMJS 15.8.25 1555
51  file upload JMJS 24.6.22 1496
50  umask(070) <- chmod o-rwx Áø¼º 01.3.16 1651
49  head2index Áø¼º 01.3.15 1347
48  grep.pl JMJS 11.1.20 1474
47  chr(13) = \M Áø¼º 01.3.15 1343
46  stty JMJS 01.3.12 1451
45  des.pl JMJS 01.3.8 1419
44  chr_plus.pl JMJS 01.3.8 1430
43  get passwd in unix JMJS 19.8.18 1278
42  unsort JMJS 19.9.10 1509
41  read from website web JMJS 19.5.15 1321
40  vec JMJS 01.3.8 1575
39  chomp $_ @_ say defined use 5.010 state grep any ... JMJS 18.10.27 1500
38  [Perl Tk] µµ½ºÃ¢ ¾øÀÌ, ÆÞ Tk ½ºÅ©¸³Æ® ½ÇÇàÇϱâ; ... JMJS 17.9.30 1454
37  @bs = sort {$a <=> $b} @as; JMJS 17.7.12 1520
36  if ( -e -z -s -f -d -T -B -M ) JMJS 16.3.10 1619
35  mkmm.pl - make freemind JMJS 12.5.22 1567
34  perl -pi.orig -e "s/\bu_(\w+_t)\b/u$1/g" *.c JMJS 11.8.26 1553
33  .xls output csv ÆÄÀÏ¿¡ \n "°¡ ÀÖÀ»¶§ JMJS 11.4.13 1442
32  jdcat.pl juncat.pl JMJS 11.2.24 1594
31  print chr(ord('a')); JMJS 01.3.8 1497
30  require "/user/home/jin1/jin1.pm"; JMJS 00.11.28 1443
29  for(my $i=0; $i < @abc; $i ++) {} JMJS 00.11.15 1526
28  remove blank $abc =~ s/[\s]+//g; JMJS 00.11.15 1471
27  array and for JMJS 00.11.14 1310
26  È¨ÆäÀÌÁö ÀÚµ¿ À̵¿ JMJS 00.10.28 1371
25  html¿¡¼­ ¾²ÀÌ´Â ±âȣǥ½Ã¹æ¹ý JMJS 00.9.30 1328
24  ¹è¿­ÀÇ ¹üÀ§ ¿¬»êÀÚ JMJS 00.9.20 1622
23  for(1..3) { print "$_";} JMJS 09.4.24 1302
22  package JMJS 24.6.22 1374
21  ÁÙ¿¡¼­ ÇѱÛÀÚ °íÄ¡±â JMJS 00.8.7 1423
20  hotkey function by getc JMJS 00.7.21 1527
19  read, sysread, syswrite JMJS 00.7.21 2340
18  crypt JMJS 00.7.13 1638
17  csv2gan.pl JMJS 11.4.4 1645
16  hexa JMJS 24.6.18 1470
15  file in out.pl JMJS 00.7.5 1658
14  ARGV JMJS 00.7.5 1487
13  jtime.pm - localtime, timelocal JMJS 09.4.9 2010
12  @INC JMJS 00.7.5 1842
11  $#myarray JMJS 00.7.5 1602
10  Hash of Array JMJS 00.7.5 1422
9  package JARRAY JHASH JMJS 00.7.4 1660
8  foreach, while each, dos2unix.pl, next last JMJS 09.4.24 1644
7  X JMJS 24.6.22 1443
6  file lock JMJS 00.7.4 1559
5  gettime JMJS 00.7.4 1533
4  [Perl]jcdread.pl JMJS 00.7.4 1615
3  [Perl]jdread.pl JMJS 00.7.4 1509
2  Monti Hall problem JMJS 24.6.27 1503
1  DESTROY JMJS 09.7.20 1454
[1]