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 160
114  perl -p -i -e s/abc/def/g JMJS 24.3.26 175
113  Deleting from a Hash JMJS 24.1.23 187
112  yaml file Àбâ JMJS 23.11.30 228
111  alzipcon JMJS 22.11.26 285
110  file2date.pl JMJS 24.6.1 400
109  UTF-8, EUC-KR JMJS 19.12.15 372
108  wget.pl LWP Simple get JMJS 19.9.17 402
107  X JMJS 19.9.17 390
106  X JMJS 19.9.17 397
105  X JMJS 19.9.17 389
104  X JMJS 19.9.17 392
103  X JMJS 19.9.17 393
102  X JMJS 19.9.17 390
101  X JMJS 19.9.17 392
100  jsame.pl JMJS 09.5.21 1911
99  jos.pl JMJS 08.11.29 1650
98  jmngr.pl - jmjspro manager JMJS 08.11.29 1688
97  vhdl.pm JMJS 08.11.29 1652
96  jreg.pl JMJS 08.11.29 1640
95  jtree.pm JMJS 08.11.29 1720
94  w2c.pl JMJS 08.11.29 1681
93  jdread.pl JMJS 08.11.29 1458
92  ffile.zip ffilediff.pl JMJS 09.4.24 1513
91  rgb2ycbcr.pl JMJS 10.5.12 1816
90  proview.pl JMJS 08.11.29 1875
89  smi_shift.pl JMJS 10.10.3 1482
88  srt2smi.pl srtshift.pl JMJS 18.7.14 1685
87  Perl CGI Input Test, getenv.cgi JMJS 18.11.21 1366
86  hash JMJS 24.6.22 1630
85  tr a-z A-Z ġȯ , ´ë¼Ò¹®ÀÚ º¯È¯ , ¹®ÀÚ¿­ Á¶°Ç , ... JMJS 24.6.22 1432
84  JARRAY->jfunc JMJS 08.10.2 1398
83  ¼öÄ¡ÇÔ¼ö - ... JMJS 09.5.7 1871
82  ¿ªÇà·Ä3x3 JMJS 09.5.7 1916
81  hex2int.pl JMJS 10.9.12 2643
80  stat - file status º¸±â JMJS 07.12.16 1507
79  Perl Tip JMJS 24.6.22 2662
78  SMI file sync delay JMJS 07.7.18 1612
77  rmword.pl JMJS 07.6.18 1530
76  pack unpack JMJS 24.6.22 1432
75  [Perl]read_dir.pl JMJS 07.2.22 1710
74  [Perl]jtab2char - tab¹®ÀÚ¸¦ ƯÁ¤ char·Î ¹Ù²ãÁÖ±â JMJS 07.2.22 1688
73  Perl ¼ýÀÚ Sorting JMJS 11.5.17 1768
72  [CGI]GET and POST JMJS 06.11.20 3427
71  Perl Grammer JMJS 06.9.4 3008
70  Ç¥ÁØ ¸ðµâ JMJS 06.8.10 1900
69  Getopt::Long example JMJS 06.8.10 2096
68  array of array JMJS 06.4.22 1509
67  [HTML]Å×ÀÌºí ¹è°æ¿¡ ±×¸²³Ö±â JMJS 06.3.8 1597
66  l2w.pm - line to word JMJS 08.12.1 1585
65  make_random_chars JMJS 05.8.10 1430
64  mail º¸³»´Â script JMJS 05.3.23 1402
63  ½ÇÇàÆÄÀÏÀ» ½ÇÇà½Ã۰í Ç¥ÁØ¿¡·¯ Àбâ JMJS 09.2.25 1404
62  ÆË¾÷â(°øÁöâ)¶ç¿ì±â Jinsung 03.12.16 2505
61  print <<ENDLINE JMJS 03.12.5 1502
60  [HTML]Target JMJS 03.5.21 1529
59  [Perl]jutil.pm JMJS 03.5.3 1780
58  [Perl]jdiff.pl JMJS 02.6.6 1676
57  [Perl]cfilter.pm - commant filter JMJS 02.1.31 1721
56  [HTML]ÀÚµ¿À¸·Î ´Ù¸¥ ÆäÀÌÁö À̵¿ JMJS 02.1.19 1542
55  STDIN file open glob -w warning JMJS 24.6.22 1580
54  opendir , readdir , closedir JMJS 24.6.22 1590
53  rand_diff JMJS 01.10.23 1486
52  vcd2v.pl JMJS 15.8.25 1560
51  file upload JMJS 24.6.22 1501
50  umask(070) <- chmod o-rwx Áø¼º 01.3.16 1658
49  head2index Áø¼º 01.3.15 1352
48  grep.pl JMJS 11.1.20 1478
47  chr(13) = \M Áø¼º 01.3.15 1348
46  stty JMJS 01.3.12 1456
45  des.pl JMJS 01.3.8 1426
44  chr_plus.pl JMJS 01.3.8 1435
43  get passwd in unix JMJS 19.8.18 1282
42  unsort JMJS 19.9.10 1516
41  read from website web JMJS 19.5.15 1326
40  vec JMJS 01.3.8 1580
39  chomp $_ @_ say defined use 5.010 state grep any ... JMJS 18.10.27 1504
38  [Perl Tk] µµ½ºÃ¢ ¾øÀÌ, ÆÞ Tk ½ºÅ©¸³Æ® ½ÇÇàÇϱâ; ... JMJS 17.9.30 1459
37  @bs = sort {$a <=> $b} @as; JMJS 17.7.12 1526
36  if ( -e -z -s -f -d -T -B -M ) JMJS 16.3.10 1624
35  mkmm.pl - make freemind JMJS 12.5.22 1571
34  perl -pi.orig -e "s/\bu_(\w+_t)\b/u$1/g" *.c JMJS 11.8.26 1559
33  .xls output csv ÆÄÀÏ¿¡ \n "°¡ ÀÖÀ»¶§ JMJS 11.4.13 1447
32  jdcat.pl juncat.pl JMJS 11.2.24 1599
31  print chr(ord('a')); JMJS 01.3.8 1503
30  require "/user/home/jin1/jin1.pm"; JMJS 00.11.28 1448
29  for(my $i=0; $i < @abc; $i ++) {} JMJS 00.11.15 1532
28  remove blank $abc =~ s/[\s]+//g; JMJS 00.11.15 1476
27  array and for JMJS 00.11.14 1316
26  È¨ÆäÀÌÁö ÀÚµ¿ À̵¿ JMJS 00.10.28 1377
25  html¿¡¼­ ¾²ÀÌ´Â ±âȣǥ½Ã¹æ¹ý JMJS 00.9.30 1332
24  ¹è¿­ÀÇ ¹üÀ§ ¿¬»êÀÚ JMJS 00.9.20 1628
23  for(1..3) { print "$_";} JMJS 09.4.24 1308
22  package JMJS 24.6.22 1380
21  ÁÙ¿¡¼­ ÇѱÛÀÚ °íÄ¡±â JMJS 00.8.7 1427
20  hotkey function by getc JMJS 00.7.21 1533
19  read, sysread, syswrite JMJS 00.7.21 2346
18  crypt JMJS 00.7.13 1643
17  csv2gan.pl JMJS 11.4.4 1651
16  hexa JMJS 24.6.18 1476
15  file in out.pl JMJS 00.7.5 1663
14  ARGV JMJS 00.7.5 1491
13  jtime.pm - localtime, timelocal JMJS 09.4.9 2016
12  @INC JMJS 00.7.5 1848
11  $#myarray JMJS 00.7.5 1608
10  Hash of Array JMJS 00.7.5 1427
9  package JARRAY JHASH JMJS 00.7.4 1665
8  foreach, while each, dos2unix.pl, next last JMJS 09.4.24 1651
7  X JMJS 24.6.22 1450
6  file lock JMJS 00.7.4 1565
5  gettime JMJS 00.7.4 1538
4  [Perl]jcdread.pl JMJS 00.7.4 1620
3  [Perl]jdread.pl JMJS 00.7.4 1514
2  Monti Hall problem JMJS 24.6.27 1507
1  DESTROY JMJS 09.7.20 1458
[1]