³¯Â¥: 1996-07-02 | ±Û¾´ÀÌ: µµ¾Æ | 18120 ¹ø | ÇÁ¸°Æ® | ¸ÞÀϷκ¸³»±â

Á¦ 2°­ - CGI.pmÀÇ »ç¿ë¹æ¹ý


ÇÁ·Î±×·¡¹Ö ½ºÅ¸ÀÏ

CGI.pmÀ¸·Î ÇÁ·Î±×·¥À» ÀÛ¼ºÇÒ¶§¿¡´Â µÎ°¡Áö ÇÁ·Î±×·¡¹Ö ½ºÅ¸ÀÏ, Áï °³Ã¼ ÁöÇâ ½ºÅ¸ÀÏ°ú ÇÔ¼ö ÁöÇâ ½ºÅ¸ÀÏÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù. °³Ã¼ ÁöÇâ ½ºÅ¸ÀÏ¿¡¼­´Â Çϳª ÀÌ»óÀÇ CGI °³Ã¼¸¦ »ý¼ºÇÏ°í ÆäÀÌÁöÀÇ ´Ù¾çÇÑ ¿ä¼Ò¸¦ »ý¼ºÇϱâÀ§ÇØ ¸Þ¼Òµå¸¦ »ç¿ëÇÑ´Ù. °¢°¢ÀÇ CGI °³Ã¼´Â ¼­¹ö¿¡ÀÇÇØ CGI·Î Àü´ÞµÈ ±â¸í ¸Å°³º¯¼öÀÇ ¸ñ·ÏÀ¸·Î ÃʱâÈ­ µÈ´Ù. »ç¿ëÀÚ´Â ÀÌ °³Ã¼¸¦ º¯°æÇÏ°í À̵éÀ» ÆÄÀÏÀ̳ª µ¥ÀÌŸ º£À̽º¿¡ ÀúÀåÇÏ°í ¶Ç À̵éÀ» ´Ù½Ã »ý¼ºÇÒ ¼ö ÀÖ´Ù. °¢ °³Ã¼´Â CGIÀÇ "»óÅÂ"¿Í »óÀÀÇÏ¸ç °¢°¢ÀÇ °³Ã¼ÀÇ ¸Å°³º¯¼ö ¸ñ·ÏÀº ¼­·Î µ¶¸³ÀûÀ̱⠶§¹®¿¡ À̵éÀ» ÀÌ¿ëÇؼ­ ½ºÅ©¸³Æ®ÀÇ »óŸ¦ ÀúÀåÇÏ°í ³ªÁß¿¡ ´Ù½Ã º¹±¸ÇÒ ¼ö ÀÖ´Ù.

¿¹·Î¼­ °³Ã¼ ÁöÇâ ½ºÅ¸ÀÏÀ» »ç¿ëÇؼ­ "¾È³ç, ±ôÁ÷¾Æ"¸¦ Ãâ·ÂÇÏ´Â HTML ÆäÀÌÁö¸¦ ¸¸µé¾î º¸ÀÚ.

1 : #!/usr/local/bin/perl
2 : use CGI;				# CGI ¸ðµâÀ» ÀÐ¾î µéÀδÙ.
3 : $q = new CGI;			# »õ·Î¿î CGI °³Ã¼¸¦ »ý¼ºÇÑ´Ù.
4 : print $q->header,			# HTTP ÇØ´õ¸¦ »ý¼ºÇÑ´Ù.
5 : 	$q->start_html('°£´ÜÇÑ ¿¹'),	# HTMLÀ» ½ÃÀÛÇÑ´Ù.
6 : 	$q->h1('¾È³ç, ±ôÂï¾Æ'),		# H1 ű׷Π"¾È³ç ±ôÂï¾Æ"¸¦ Ãâ·ÂÇÑ´Ù.
7 : 	$q->end_html;			# HTMLÀ» ´Ý´Â´Ù.
½ÇÇà °á°ú

example2.cgi

ÇÔ¼ö ÁöÇâ ½ºÅ¸ÀÏ¿¡¼­´Â ÇϳªÀÇ ±âº» CGI °³Ã¼¸¸ Á¸ÀçÇϸç, ÀÌ °³Ã¼°¡ Á÷Á¢ »ç¿ëµÇ´Â °ÍÀº ¾ÆÁÖ µå¹°´Ù. °³Ã¼¸¦ »ç¿ëÇÏ´Â ´ë½Å¿¡ CGI ¸Å°³º¯¼ö¸¦ º¹¿øÇÏ°í HTML ű׸¦ »ý¼ºÇÏ°í ÄíÅ°¸¦ ó¸®ÇϱâÀ§ÇØ ÇÔ¼ö¸¦ È£ÃâÇÑ´Ù. ÀÌ ¹æ¹ýÀº º¸´Ù ºÐ¸íÇÑ ÇÁ·Î±×·¡¹Ö ȯ°æÀ» Á¦°øÇØ ÁÖÁö¸¸ Çѹø¿¡ ÇϳªÀÇ CGI °³Ã¼¸¸ »ç¿ëÇؾßÇÏ´Â Á¦¾àÀÌ ÀÖ´Ù. ´ÙÀ½ ¿¹´Â À§ÀÇ ¿¹¿Í µ¿ÀÏÇÑ ¿¹ÀÌÁö¸¸ ÇÔ¼ö ÁöÇâ ȯ°æÀ» »ç¿ëÇÏ°í ÀÖ´Ù. ÁÖµÈ Â÷ÀÌ´Â ÇÔ¼öÀÇ ÁýÇÕÀ» À̸§ °ø°£(º¸Åë Ç¥ÁØ ÇÔ¼ö)·Î °¡Á®¿À±â¸¸ ÇÏ¸é µÈ´Ù´Â °ÍÀÌ´Ù. ±»ÀÌ °³Ã¼¸¦ »ý¼ºÇÒ ÇÊ¿ä´Â ¾ø´Ù.

1 : #!/usr/local/bin/perl
2 : use CGI qw/:standard/;	# CGI ¸ðµâÀ» ÀÐ¾î µéÀδÙ.
3 : print header,		# HTTP ÇØ´õ¸¦ »ý¼ºÇÑ´Ù.
4 : 	start_html('°£´ÜÇÑ ¿¹'),# HTMLÀ» ½ÃÀÛÇÑ´Ù.
5 : 	h1('¾È³ç, ±ôÂï¾Æ'),	# H1 ű׷Π"¾È³ç ±ôÂï¾Æ"¸¦ Ãâ·ÂÇÑ´Ù.
6 : 	end_html;		# HTMLÀ» ´Ý´Â´Ù.
½ÇÇà °á°ú

example3.cgi

ÀÌ ¹®¼­ÀÇ ¿¹´Â ÁÖ·Î °³Ã¼ ÁöÇâ ½ºÅ¸ÀÏÀ» »ç¿ëÇß´Ù. CGI.pm¿¡¼­ ÇÔ¼ö ÁöÇâ ½ºÅ¸ÀÏ¿¡´ëÇÑ Áß¿äÇÑ Á¤º¸´Â ÇÔ¼ö ÁöÇâ ȯ°æÀ» »ç¿ëÇϱ⸦ º¸±â¹Ù¶õ´Ù. CGI.PM ·çƾÀÇ È£Ãâ

´ëºÎºÐÀÇ CGI.pm ·çƾÀº ¿©·¯°¡Áö ÀÎÀÚ¸¦ ¹Þ¾ÆµéÀδÙ. ¶§¶§·Î 20°³ ÀÌ»óÀÇ ÀÎÀÚ¸¦ ¹Þ¾ÆµéÀÌ´Â °æ¿ìµµ ÀÖ´Ù. ÀÌ·¯ÇÑ °ÍÀ» °£´ÜÈ÷ ÇϱâÀ§ÇØ ¸ðµç ·çƾÀº ´ÙÀ½°ú °°ÀÌ ±â¸í ÀÎÀÚ È£Ãâ ¹ýÀ» »ç¿ëÇÑ´Ù.

print $q->header(-type=>'image/gif',-expires=>'+3d');

°¢°¢ÀÇ ÀÎÀÚ À̸§Àº ´ë½¬(-) ´ÙÀ½¿¡ ³ª¿Â´Ù. ÀÎÀÚ ¸ñ·Ï¿¡¼­ ´ë¼Ò¹®ÀÚ´Â ±¸ºÐÇÏÁö ¾ÊÀ¸¸ç ¼ø¼­ ¿ª½Ã ±¸ºÐÇÏÁö ¾Ê´Â´Ù. Áï, -type, -Type, -TYPE ¸ðµÎ »ç¿ëÇÒ ¼ö ÀÖ´Ù. »ç½Ç ù¹ø° ÀÎÀÚ¸¸ ´ë½¬(-)·Î ½ÃÀÛÇصµ µÈ´Ù. ù ¹ø° ÀÎÀÚ¿¡ ´ë½¬(-)°¡ Á¸ÀçÇϸé CGI.pmÀº À̾îÁö´Â ÀÎÀÚµµ ´ë½¬°¡ ÀÖ´Â °ÍÀ¸·Î °¡Á¤ÇÑ´Ù.

´ë½¬¸¦ »ç¿ëÇÏ°í ½ÍÁö ¾Ê´Ù¸é ´ë½¬¸¦ ÀüÇô »ç¿ëÇÏÁö ¾Ê¾Æµµ µÈ´Ù. °³Ã¼¸¦ »ý¼ºÇÑ ÈÄ "0"ÀÌ ¾Æ´Ñ °ªÀ¸·Î use_named_parameters()¸¦ È£ÃâÇÔÀ¸·Î¼­ ±â¸í ÀÎÀÚ È£ÃâÀ» »ç¿ëÇÏÁö ¾Ê°Ú´Ù´Â °ÍÀ» CGI.pm¿¡ ¾Ë·ÁÁÙ ¼ö ÀÖ´Ù.

$query = new CGI;
$query->use_named_parameters(1);
$field = $query->radio_group('name'=>'OS',
	'values'=>['À¯´Ð½º','À©µµ±×','¸ÆŲÅä½Ã'],
	'default'=>'À¯´Ð½º');

¿©·¯ ·çƾµéÀº Åë»ó ÇϳªÀÇ ÀÎÀڷΠȣÃâµÈ´Ù. ÀÌ·¯ÇÑ ·çƾÀÇ °æ¿ì¿¡´Â ÀÎÀÚ À̸§ ¾øÀÌ ÇϳªÀÇ ÀÎÀÚ¸¸ ÁÖ¸é µÈ´Ù.

header()
´Â ÀÌ·¯ÇÑ ·çƾµé Áß ÇϳªÀÌ´Ù. ÀÌ °æ¿ì¿¡ ÇϳªÀÇ ÀÎÀÚ´Â ¹®¼­ÀÇ À¯ÇüÀÌ´Ù.

print $q->header('text/html');

´Ù¸¥ ÀÌ·¯ÇÑ ·çƾµéÀº ¾Æ·¡¿¡ ¹®¼­È­µÇ¾î ÀÖ´Ù.

¶§¶§·Î ±â¸í ÀÎÀÚµéÀº ½ºÄ®¶ó¸¦ ÂüÁ¶Çϸç, °¡²û ¹è¿­À̳ª ¿¬°ü¹è¿­À» ÂüÁ¶ÇÑ´Ù. ¾î¶°ÇÑ ÇüÅÂÀÇ ÀÎÀÚµçÁö Àü´ÞÇÒ ¼ö ÀÖÀ¸¸ç, ·çƾÀº Àü´ÞµÈ ÀÎÀÚ°¡ ¹«¾ùÀÌµç °¡Àå Àû´çÇÏ°Ô Ã³¸®ÇÑ´Ù. ¿¹¸¦µé¾î

param()
·çƾÀº Çϳª ¶Ç´Â ¿©·¯ °³ÀÇ °ªÀ¸·Î CGI ¸Å¸Åº¯¼ö¸¦ ¼³Á¤Çϴµ¥ »ç¿ëµÈ´Ù. ´ÙÀ½Àº ÀÌ µÎ °æ¿ì¿¡´ëÇÑ ¿¹ÀÌ´Ù.

$q->param(-name=>'veggie',-value=>'Å丶Åä');
$q->param(-name=>'veggie',-value=>['Å丶Åä','»óÄ¡','°¨ÀÚ','°í±¸¸¶']);

CGI.pmÀÇ ¾ÆÁÖ ¸¹Àº ·çƾµéÀº ¸ðµâ³»¿¡ Ưº°È÷ Á¤ÀǵÇÁö ¾Ê¾ÒÁö¸¸ ÇÊ¿ä½Ã ÀÚµ¿ÀûÀ¸·Î »ý¼ºµÈ´Ù. À̵éÀº µ¿ÀûÀ¸·Î HTML ÆäÀÌÁö¸¦ ¸¸µå´Âµ¥ »ç¿ëµÇ´Â "HTML ¸Þ¼Òµå"µéÀÌ´Ù. HTML ű״ ¼Ó¼º(ÅÂ±× ÀÚü³»¿¡¼­ »ç¿ëµÇ´Â ¼Ó¼º=°ªÀÇ ½Ö)°ú ³»¿ë(½ÃÀÛ ÅÂ±×¿Í Á¾·áÅÂ±× »çÀÌ¿¡ Á¸ÀçÇÏ´Â ³»¿ë)À» ¸ðµÎ °®´Â´Ù. ¼Ó¼º°ú ³»¿ëÀ» ±¸ºÐÇϱâÀ§ÇØ CGI.pmÀº ù¹ø° ÀÎÀÚ¸¦ ¿¬°ü¹è¿­·Î ÂüÁ¶ÇÔÀ¸·Î¼­ HTML ¼Ó¼ºÀ» Àü´ÞÇϸç À̾îÁö´Â ÀÎÀÚ´Â ³»¿ëÀ» ÂüÁ¶ÇÑ´Ù.

ÄÚµå				»ý¼ºµÈ HTML
----				--------------
h1()				<H1>
h1('¹«½¼','³»¿ëÀϱî?');		<H1>¹«½¼ ³»¿ëÀϱî?</H1>
h1({-align=>left});		<H1 ALIGN="LEFT">
h1({-align=>left},'³»¿ë');	<H1 ALIGN="LEFT">³»¿ë</H1>

HTML ű״ ³ªÁß¿¡ º¸´Ù ÀÚ¼¼È÷ ¼³¸íÇÏ°Ú´Ù.

CGI.pmÀ» óÀ½ »ç¿ëÇÏ´Â »ç¶÷µéÀº HTML ÅÂ±× °ü·Ã ÇÔ¼öÀÇ È£Ãâ ±ÔÄ¢(HTML ÅÂ±× ¼Ó¼ºÀ» Áß°ýÈ£·Î °¨½Î´Â)°ú ´Ù¸¥ ·çƾÀÇ È£Ãâ ±ÔÄ¢(Áß°ýÈ£ ¾øÀÌ ¼Ó¼ºÀ» ¸¸µå´Â) »çÀÌÀÇ Â÷ÀÌ ¶§¹®¿¡ È¥¶õ½º·¯¿ï °ÍÀÌ´Ù. È¥¶õ½º·¯¿öÇÒ ÇÊ¿ä´Â ¾ø´Ù. Áß°ýÈ£´Â ¸ðµÎ ¿É¼ÇÀÌ´Ù. ¸¸¾à ¿øÇÑ´Ù¸é ±â¸í ÀÎÀÚ¸¦ ÃëÇÏ´Â ÀÓÀÇÀÇ ·çƾÀ» È£ÃâÇÒ ¶§ Áß°ýÈ£¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ¿¹¸¦µé¾î:

print $q->header( {-type=>'image/gif',-expires=>'+3d'} );

-w ½ºÀ§Ä¡¸¦ »ç¿ëÇÑ´Ù¸é ¸î¸î CGI.pm ÀÎÀÚÀÇ À̸§ÀÌ ³»ÀåµÈ ÆÞ ÇÔ¼ö¿Í Ãæµ¹À» ÀÏÀ¸Å²´Ù´Â °æ°í¸¦ º¸°ÔµÉ °ÍÀÌ´Ù. À̵éÁß °¡Àå ºó¹øÇÑ °ÍÀº ´ÙÁß °ªÀ» °®´Â ¸Þ´º(·¹µð¿À ¹öÆ°°ú °°Àº)¸¦ »ý¼ºÇϴµ¥ »ç¿ëµÇ´Â -values ÀÎÀÚÀÌ´Ù. ÀÌ °æ°í¸¦ ¿ìȸÇϱâÀ§Çؼ­´Â ¿©·¯°¡Áö ¹æ¹ýÀÌ ÀÖ´Ù.

  1. °¡´ÉÇÏ´Ù¸é ´Ù¸¥ À̸§À» »ç¿ëÇÑ´Ù. ¿¹¸¦µé¾î -value´Â -valuesÀÇ º°ÄªÀÌ´Ù.
  2. ´ë¼Ò¹®ÀÚ¸¦ º¯°æÇÑ´Ù. ¿¹: -Values
  3. ÀÎÀÚ À̸§À» ÀÛÀº µû¿ÈÇ¥·Î °¨½Ñ´Ù. ¿¹: '-values'

¸¹Àº ·çƾµé¿¡¼­ ·çƾÀÌ ÀνÄÇÏÁö ¸øÇÏ´Â ±â¸í ÀÎÀÚ¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ¿¹¸¦µé¾î ÀνÄÈ÷Áö ¸øÇÏ´Â ÀÎÀÚ¸¦ ·çƾ¿¡ Á¦°øÇÔÀ¸·Î¼­ ºñÇ¥ÁØ HTTP Çì´õ Çʵ带 »ý¼ºÇÒ ¼ö ÀÖ´Ù.

print $q->header(-type  =>  'text/html',
	-cost  =>  'Three smackers',
	-annoyance_level => 'high',
	-complaints_to   => 'bit bucket');

ÀÌ ¿¹´Â ´ÙÀ½°ú °°Àº ºñÇ¥ÁØ HTTP Çì´õ¸¦ ¸¸µç´Ù.

HTTP/1.0 200 OK
Cost: Three smackers
Annoyance-level: high
Complaints-to: bit bucket
Content-type: text/html

¹ØÁÙÀº ÀÚµ¿ÀûÀ¸·Î ´ë½¬(-)·Î º¯È¯µÈ´Ù´Â °Í¿¡ ÁÖÀÇÇϱ⠹ٶõ´Ù. HTML »ý¼º ·çƾÀº ´Ù¸¥ ÇüÅÂÀÇ º¯È¯À» ¼öÇàÇÑ´Ù.

ÀÌ·¯ÇÑ Æ¯Â¡À¸·Î ºü¸£°Ô º¯ÇÏ´Â HTTP¿Í HTML Ç¥ÁØÀ» À¯ÁöÇÒ ¼ö ÀÖ´Ù. »õ·Î¿î ÁúÀÇ°³Ã¼ »ý¼ºÇϱâ(°³Ã¼ ÁöÇâ ½ºÅ¸ÀÏ)

$query = new CGI;

ÀÌ °ÍÀº ÀÔ·Â(POST¿Í GET ¸Þ¼Òµå)À» Çؼ®ÇÏ°í ±× °á°ú¸¦ $query¶ó´Â ÆÞ5 °³Ã¼·Î ÀúÀåÇÑ´Ù. ÀÔ·Â ÆÄÀϷκÎÅÍ »õ·Î¿î ÁúÀÇ°³Ã¼ »ý¼ºÇϱâ

$query = new CGI(INPUTFILE);

new()
¸Þ¼Òµå¿¡ ÆÄÀÏÇÚµéÀ» Á¦°øÇϸé ÆÄÀÏ(¶Ç´Â STDINÀ̳ª ¹«¾ùÀ̵ç)·ÎºÎÅÍ ¸Å°³º¯¼ö¸¦ Àд´Ù. ÀÌ ÆÄÀÏÀº µð¹ö±ëȯ°æÀ» À§ÇØ ÀúÀåµÈ ÀÓÀÇ Çü½ÄÀÇ ÆÄÀÏÀÏ ¼ö ÀÖ´Ù(¿¹: °³Ç๮ÀÚ°¡ Á¦°ÅµÈ ÀÏ·ÃÀÇ TAG=VALUE ½Ö). ÆíÀǸ¦ À§ÇØ ÀÌ ÆÄÀÏÀº
save()
¸Þ¼Òµå¿¡ÀÇÇØ »ý¼ºµÇ´Â °ÍÀ¸·Î ÇÏÀÚ. ¿©·¯ÇàÀ» °®´Â ¸Å°³º¯¼öµµ ÀúÀå, º¹¿øµÉ ¼ö ÀÖ´Ù.

ÆÞ ÃßÁ¾ÀÚµéÀº ÆÄÀÏÇÚµéÀÇ ÂüÁ¶³ª ½ÉÁö¾î´Â ÆÄÀÏÇÚµé ¹­À½(glob: ÆÄÀÏÇÚµéÀ» Àü´ÞÇÏ´Â °ø½ÄÀûÀÎ ¹æ¹ý)À» ÂüÁ¶ÇÒ ¼ö ÀÖ´Ù°ÍÀ» ¾Ë¸é Áñ°Å¿ö ÇÒ °ÍÀÌ´Ù.

$query = new CGI(\*STDIN);

¶ÇÇÑ CGI °³Ã¼¸¦ FileHandle³ª IO::File °³Ã¼·Î ÃʱâÈ­ÇÒ ¼öµµ ÀÖ´Ù.

ÇÔ¼ö ÁöÇâ ½ºÅ¸ÀÏÀ» »ç¿ëÇÏ°í ÆÄÀϷκÎÅÍ CGI »óŸ¦ ÃʱâÈ­ÇÏ·Á¸é restore_parameters()¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù. ÀÌ °ÍÀº ÁöÁ¤ÇÑ ÆÄÀÏ ÇÚµé·ÎºÎÅÍ ±âº» CGI °³Ã¼¸¦ (Àç)ÃʱâÈ­ ÇÒ °ÍÀÌ´Ù.

open (IN,"test.in") || die;
restore_parameters(IN);
close IN;

¿¬°ü¹è¿­ ÂüÁ¶·Î ÁúÀÇ°³Ã¼¸¦ ÃʱâÈ­ÇÒ ¼ö ÀÖ´Ù.

$query = new CGI( {'dinosaur'=>'Áê¶ó±â °ø¿ø',
		'song'=>'³Î »ç¶ûÇØ',
		'friends'=>[qw/¼¼»ó ¸ðµç ¿©ÀÚ/]}
	);

¶ÇÇÑ Àû´çÈ÷ Çü½ÄÈ­µÈ ÀÔ·ÂÀ¸·ÎºÎÅÍ ÁúÀÇ°³Ã¼¸¦ ÃʱâÈ­ÇÒ ¼ö ÀÖ´Ù. URL¿¡¼­ ÃßÃâÇÑ ÁúÀÇ ¹®ÀÚ¿­µµ °¡´ÉÇÏ´Ù.

$query = new CGI('dinosaur=barney&color=purple');

¸¶Áö¸·À¸·Î ÀÌÀü¿¡ Á¸ÀçÇÑ CGI °³Ã¼·ÎºÎÅÍ ÃʱâÈ­ÇÏ´Â °Íµµ °¡´ÉÇÏ´Ù(ÇöÀç ÀÌ °ÍÀº ¸Å°³º¯¼ö ¸ñ·ÏÀÇ »çº»ÀÌ´Ù).

$old_query = new CGI;
$new_query = new CGI($old_query);

ºó ÁúÀǸ¦ »ý¼ºÇϱâÀ§ÇØ °ø¹é¹®ÀÚ¿­À̳ª °ø¹é Çؽ¬·Î ÃʱâÈ­ÇÒ ¼ö ÀÖ´Ù.

$empty_query = new CGI("");

¶Ç´Â

$empty_query = new CGI({});
ÁúÀǷκÎÅÍ Å°¿öµåÀÇ ¸ñ·Ï °¡Á®¿À±â

@keywords = $query->keywords

½ºÅ©¸³Æ®°¡ <ISINDEX> °Ë»öÀÇ °á°ú·Î¼­ È£ÃâµÇ¾ú´Ù¸é Çؼ®µÈ Å°¿öµå´Â

keywords()
¸Þ¼Òµå¸¦ »ç¿ëÇؼ­ ¾òÀ» ¼ö ÀÖ´Ù. ½ºÆ®¸³Æ®¿¡ Àü´ÞµÈ ¸ðµç ¸Å°³º¯¼öÀÇ À̸§ °¡Á®¿À±â

@names = $query->param

½ºÅ©¸³Æ®°¡ ¸Å°³º¯¼ö ¸ñ·Ï(¿¹: "name1=value1&name2=value2&name3=value3")À¸·Î È£ÃâµÇ¾ú´Ù¸é

param()
¸Þ¼Òµå´Â ¸Å°³º¯¼öÀÇ À̸§À» ¹è¿­·Î ¸®ÅÏÇÒ °ÍÀÌ´Ù. ½ºÅ©¸³Æ®°¡ <ISINDEX>·Î È£ÃâµÇ¾ú´Ù¸é 'keywords'¶ó´Â ÇϳªÀÇ ¸Å°³º¯¼ö°¡ ¸®ÅϵȴÙ.

ÁÖÀÇ: 1.5 ÆÇ¿¡¼­ ó·³ ¸®ÅÏµÈ ¸Å°³º¯¼ö À̸§ ¹è¿­Àº ºê·Î¿ìÀú¿¡ÀÇÇØ Á¦ÃâµÈ ¼ø¼­¿Í µ¿ÀÏÇÑ ¼ø¼­·Î ÀúÀåµÈ´Ù. º¸Åë ÀÌ ¼ø¼­´Â ¸Å°³º¯¼ö¸¦ Æû¿¡¼­ Á¤ÀÇÇÑ ¼ø¼­¿Í °°´Ù(±×·¯³ª ÀÌ °ÍÀÌ Ç¥ÁØÀº ¾Æ´Ï¸ç µû¶ó¼­ ¾î¶°ÇÑ °Íµµ º¸ÁõÇÒ ¼ö´Â ¾ø´Ù). ÇϳªÀÇ ±â¸í ¸Å°³º¯¼öÀÇ °ª(µé) °¡Á®¿À±â

@values = $query->param('foo');

¶Ç´Â

$value = $query->param('foo');

±â¸í ¸Å°³º¯¼öÀÇ °ªÀ» °¡Á®¿À±âÀ§ÇØ

param()
¸Þ¼Òµå¿¡ ÇϳªÀÇ ÀÎÀÚ¸¦ Àü´ÞÇÑ´Ù. ¸Å°³º¯¼ö°¡ ´ÙÁß °ªÀ» °¡Áö°í ÀÖ´Ù¸é(¼±Åà ¸ñ·ÏÀÇ ´ÙÁß¼±ÅÃ) ¹è¿­·Î ¹ÞÀ» ¼ö ÀÖ´Ù. ±×·¸Áö ¾Ê´Ù¸é ÀÌ ¸Þ¼Òµå´Â ÇϳªÀÇ °ªÀ» ¸®ÅÏÇÑ´Ù. ±â¸í ¸Å°³º¯¼ö °ªÀÇ ¼³Á¤

$query->param('foo','ÀÓÀÇÀÇ','¹è¿­ÀÇ','°ª');

ÀÌ °ÍÀº ¸®½ºÆ®·Î 'foo'¶ó´Â ¸Å°³º¯¼öÀÇ °ªÀ» ¼³Á¤ÇÑ´Ù. ÀÌ °ÍÀÌ ½ºÅ©¸³Æ®°¡ ÀÏ´Ü È£ÃâµÈ ÈÄ ÇʵåÀÇ °ªÀ» º¯°æÇÏ´Â ÇÑ ¹æ¹ýÀÌ´Ù.(¶Ç ´Ù¸¥ ¹æ¹ýÀº ¸ðµç ¸Þ¼Òµå¿¡ÀÇÇØ Çã¿ëµÇ¸ç Æû ¿ä¼Ò¸¦ »ý¼ºÇϴµ¥ »ç¿ëµÇ´Â -override ¸Å°³º¯¼öÀÌ´Ù.)

param()
´Â ¶ÇÇÑ ±â¸í ¸Å°³º¯¼ö ½ºÅ¸ÀÏÀÇ È£ÃâÀ» ÀνÄÇÑ´Ù. ³ªÁß¿¡ ÀÚ¼¼È÷ ¼³¸íÇÏ°Ú´Ù.

$query->param(-name=>'foo',-values=>['ÀÓÀÇÀÇ','¹è¿­ÀÇ','°ª']);

¶Ç´Â

$query->param(-name=>'foo',-value=>'ÇØ´ç °ª');
¸Å°³º¯¼ö¿¡ °ªÀ» Ãß°¡Çϱâ

$query->append(-name=>'foo',-values=>['±×·¯³ª','´õ¸¹Àº','°ª']);

ÀÌ °ÍÀº °ªÀ̳ª °ªÀÇ ¸ñ·ÏÀ» ¸Å°³º¯¼ö¿¡ Ãß°¡ÇÑ´Ù. ¸Å°³º¯¼ö°¡ Á¸ÀçÇÏ´Â °æ¿ì °ªµéÀº ¸Å°³º¯¼öÀÇ ³¡¿¡ µ¡ºÙ¿©Áø´Ù. ±×·¸Áö ¾ÊÀ¸¸é ¸Å°³º¯¼ö°¡ »ý¼ºµÈ´Ù. ÀÌ ¹æ¹ýÀº ´ÜÁö ±â¸í ÀÎÀÚ È£Ãâ Çü½Ä¸¸ ÀνÄÇÑ´Ù´Â °Í¿¡ ÁÖÀÇÇϱ⠹ٶõ´Ù. ¸ðµç ¸Å°³º¯¼ö¸¦ À̸§°ø°£À¸·Î °¡Á®¿À±â

$query->import_names('R');

'R'À̶ó´Â À̸§ °ø°£¿¡ ÀÏ·ÃÀÇ º¯¼öµéÀ» »ý¼ºÇÑ´Ù. ¿¹¸¦µé¸é $R::foo, @R:foo¿Í°°Àº °ÍµéÀÌ´Ù. Å°¿öµå ¸ñ·ÏÀÇ °æ¿ì @R::keywords°¡ µÈ´Ù. ¾î¶°ÇÑ À̸§µµ ÁÖÁö ¾ÊÀ¸¸é ÀÌ ¸Þ¼Òµå´Â 'Q'¶ó´Â À̸§ °ø°£À¸·Î º¯¼ö¸¦ °¡Á®¿Â´Ù.

°æ°í: 'main'À» ÀÌ¿ëÇؼ­´Â ¾î¶°ÇÑ °Íµµ °¡Á®¿Í¼­´Â ¾ÈµÈ´Ù. ÀÌ °ÍÀº ½É°¢ÇÑ º¸¾È ¹®Á¦¸¦ ÀÏÀ¸Å³ ¼ö ÀÖ´Ù.

ÀÌÀü ÆÇ¿¡¼­ ÀÌ ¸Þ¼Òµå´Â import()¶ó°í ºÒ·È´Ù. 2.20ÆÇ¿¡¼­Ã³·³ ÀÌ À̸§Àº ³»ÀåµÉ ÆÞÀÇ ¸ðµâ, import¿ÍÀÇ Ãæµ¹À» ¸·±âÀ§ÇØ ¿ÏÀüÈ÷ Á¦°ÅµÇ¾ú´Ù. ¸Å°³º¯¼ö¸¦ ¿ÏÀüÈ÷ Á¦°ÅÇϱâ

$query->delete('foo');

ÀÌ °ÍÀº ¸Å°³º¯¼ö¸¦ ¿ÏÀüÈ÷ Á¦°ÅÇÑ´Ù. ÀÌ°ÍÀº ¶§¶§·Î ½ºÅ©¸³Æ®¿¡¼­ ½ºÅ©¸³Æ®¸¦ È£ÃâÇϸ鼭 ¸Å°³º¯¼ö°¡ Àü´ÞµÇÁö ¾Êµµ·Ï ¸Å°³º¯¼ö¸¦ Àç¼³Á¤ÇÒ ¶§ ¾ÆÁÖ À¯¿ëÇÏ´Ù.

ÇÔ¼ö È£Ãâȯ°æÀ» »ç¿ëÇÑ´Ù¸é, ÆÞ¿¡ ³»ÀåµÈ delete ¿¬»êÀÚ¿ÍÀÇ Ãæµ¹À» ÇÇÇϱâÀ§ÇØ "Delete()"¸¦ »ç¿ëÇÑ´Ù. ¸ðµç ¸Å°³º¯¼ö¸¦ »èÁ¦Çϱâ

$query->delete_all();

ÀÌ °ÍÀº CGI °³Ã¼¸¦ ¿ÏÀüÈ÷ »èÁ¦ÇÑ´Ù. Æû¹®¼­¸¦ »ý¼ºÇϸ鼭 ¸ðµç ±âº»°ªÀÌ È®½ÇÈ÷ ÃëÇØÁöµµ·Ï ÇÒ ¶§ À¯¿ëÇÒ °ÍÀÌ´Ù.

ÇÔ¼ö È£Ãâ ȯ°æÀ» »ç¿ëÇÑ´Ù¸é ´ë½Å¿¡

Delete_all()
¸¦ »ç¿ëÇÑ´Ù. ¸Å°³º¯¼ö ¸ñ·Ï¿¡ Á÷Á¢ Á¢±ÙÇϱâ

$q->param_fetch('address')->[1] = 'Źé»ê¸Æ';
unshift @{$q->param_fetch(-name=>'address')},'Á¶Á¤·¡';

À§¿¡¼­ ¼³¸íÇÏÁö ¾ÊÀº ¹æ¹ýÀ¸·Î ¸Å°³º¯¼ö ¸ñ·Ï¿¡ Á¢±ÙÇÒ ÇÊ¿ä°¡ ÀÖ´Ù¸é ¸Å°³º¯¼ö À̸§À¸·Î param_fetch() ¸Þ¼Òµå¸¦ È£ÃâÇÔÀ¸·Î¼­ Á÷Á¢ °ªÀ» ÂüÁ¶ÇÒ ¼ö ÀÖ´Ù. ÀÌ °ÍÀº ¸Å°³º¯¼öÀÇ ¹è¿­À» ¸®ÅÏÇÏ¸ç ¿øÇÏ´Â ÀÓÀÇÀÇ ¹æ¹ýÀ¸·Î À̵éÀ» ó¸®ÇÒ ¼ö ÀÖ´Ù.

-name¸¦ »ç¿ëÇؼ­ ±â¸í ÀÎÀÚ Çü½ÄÀ» »ç¿ëÇÒ ¼öµµ ÀÖ´Ù. ½ºÅ©¸³Æ®ÀÇ »óŸ¦ ÆÄÀÏ·Î ÀúÀåÇϱâ

$query->save(FILEHANDLE)

ÀÌ °ÍÀº ÆûÀÇ ÇöÀç »óŸ¦ ÁÖ¾îÁø ÆÄÀÏ ÇÚµé·Î ÀúÀåÇÑ´Ù.

new()
¸Þ¼Òµå¿¡ ÆÄÀÏÇÚµéÀ» Á¦°øÇÔÀ¸·Î¼­ ÀÌ »óŸ¦ ´Ù½Ã ÀÐÀ» ¼ö ÀÖ´Ù. ÆÄÀÏÇÚµéÀº ÆÄÀÏ, ÆÄÀÌÇÁ ¶Ç´Â ¹«¾ùÀÌµç °¡´ÉÇÏ´Ù´Â °Í¿¡ ÁÖÀÇÇϱ⠹ٶõ´Ù.

ÀúÀåµÈ ÆÄÀÏÀÇ Çü½ÄÀº ´ÙÀ½°ú °°´Ù.

NAME1=VALUE1
NAME1=VALUE1
NAME2=VALUE2
NAME3=VALUE3
=

À̸§°ú °ªÀº URL¿¡¼­ Ư¼ö¹®ÀÚ°¡ Á¦°ÅµÈ Çü½ÄÀÌ´Ù. ´ÙÁß °ªÀ» °®´Â CGI ¸Å°³º¯¼ö´Â ¹Ýº¹ÀûÀÎ À̸§À¸·Î Ç¥ÇöµÈ´Ù. °¢°¢ÀÇ ±â·ÏÀº ÇϳªÀÇ =¿¡ÀÇÇØ ºÐ¸®µÈ´Ù. ¶ÇÇÑ ÀÌ·¯ÇÑ »óŸ¦ ¿©·¯¹ø ¾²°í new¸¦ ¿©·¯¹ø È£ÃâÇÔÀ¸·Î¼­ À̵éÀ» ´Ù½Ã ÀÐÀ» ¼ö ÀÖ´Ù. Ãß°¡ ¸ðµå·Î ÆÄÀÏÀ» ¿ÀÇÂÇÔÀ¸·Î¼­ ¿©·¯ ¼¼¼ÇÀ» ÀúÀåÇÒ ¼ö ÀÖ´Ù. ÀÌ ¹æ¹ýÀ¸·Î °£´ÜÇÑ ¹æ¸í·ÏÀ» ÀÛ¼ºÇÒ ¼ö ÀÖÀ¸¸ç »ç¿ëÀÚÀÇ ÁúÀÇ ¸ñ·ÏÀ» À¯ÁöÇÒ ¼ö ÀÖ´Ù. ¿©±â ´ÙÁß ¼¼¼Ç ±â·ÏÀ» »ý¼ºÇϴ ªÀº ¿¹°¡ ÀÖ´Ù.

 1 : #!/usr/local/bin/perl
 2 : use CGI;
 3 : 
 4 : open (OUT,">>./save/test.txt") || die;
 5 : $records = 5;
 6 : foreach (0..$records) {
 7 : 	my $q = new CGI;
 8 : 	$q->param(-name=>'counter',-value=>$_);
 9 : 	$q->save(OUT);
10 : }
11 : close OUT;
12 : 
13 : $q = new CGI;
14 : # ÀбâÀ§ÇØ ´Ù½Ã ÆÄÀÏÀ» ¿¬´Ù.
15 : print $q->header, $q->start_html, $q->pre;
16 : 
17 : open (IN,"./save/test.txt") || die;
18 : while (!eof(IN)) {
19 : 	my $q = new CGI(IN);
20 : 	print $q->param('counter'),"\n";
21 : }
22 : 
23 : print $q->pre, $q->end_html;
½ÇÇà°á°ú

count.cgi ÀúÀå°á°ú

test.txt

ÀúÀå/º¹¿ø¿¡¼­ »ç¿ëµÈ ÆÄÀÏ Çü½ÄÀº Whitehead Genome CenterÀÇ µ¥ÀÌŸ ±³È¯Çü½Ä, "Boulderio"¿¡ÀÇÇØ »ç¿ëµÈ °Í°ú µ¿ÀÏÇϸç Boulderio À¯Æ¿¸®Æ¼¸¦ »ç¿ëÇؼ­ Á¶ÀÛ, DBÈ­ µÉ ¼ö ÀÖ´Ù. º¸´Ù ÀÚ¼¼ÇÑ °ÍÀº BOULDER À» º¸±â ¹Ù¶õ´Ù.

ÇÔ¼ö ÁöÇâ ȯ°æ¿¡¼­ ÀÌ ¹æ¹ýÀ» »ç¿ëÇÏ·Á¸é save_parameters()À» »ç¿ëÇÑ´Ù. ÇÔ¼ö ÁöÇâ ȯ°æÀ» »ç¿ëÇϱâ

ÇÔ¼ö ÁöÇâ ȯ°æÀ» »ç¿ëÇϱâÀ§ÇØ À̸§ °ø°£À¸·Î °¡Á®¿Ã ·çƾÀ̳ª ·çƾÀÇ ÁýÇÕÀ» ÁöÁ¤ÇØ¾ß ÇÑ´Ù.

use CGI <¸Þ¼ÒµåÀÇ ¸ñ·Ï>;

ÀÌ ¹æ¹ýÀº ¸Þ¼ÒµåÀÇ ¸ñ·ÏÀ» ÇöÀçÀÇ ÆÐÅ°Áö·Î °¡Á®¿À°ÔµÈ´Ù. CGI °³Ã¼¸¦ »ý¼ºÇÏÁö ¾Ê°í Á÷Á¢ À̵éÀ» È£ÃâÇÒ ¼ö ÀÖ´Ù. ÀÌ ¿¹´Â param()°ú header()¸¦ °¡Á®¿À´Â ¹æ¹ý°ú À̵éÀ» Á÷Á¢ »ç¿ëÇÏ´Â ¹æ¹ýÀ» º¸ÀÌ°í ÀÖ´Ù.

use CGI 'param','header';
print header('text/plain');
$zipcode = param('zipcode');

À̸§¿¡ÀÇÇØ ±×·ìÁö¾îÁø ÇÔ¼öÀ» °øÅëÁýÇÕÀ» °¡Á®¿À´Â °æ¿ì°¡ ¸¹À» °ÍÀÌ´Ù. ¸ðµç ÇÔ¼ö ÁýÇÕÀº ":html3"('HTML 3 Ç¥ÁØ¿¡ Á¤ÀÇµÈ Å±×)ó·³ ":" ¹®ÀÚ·Î ½ÃÀ۵ȴÙ.

¿©±â °¡Á®¿Ã ¼ö ÀÖ´Â ÇÔ¼ö ÁýÇÕÀÇ ¸ñ·ÏÀÌ ÀÖ´Ù.

:cgi
param(), path_info()¿Í °°Àº CGI¸¦ ó¸®ÇÏ´Â ¸ðµç ¸Þ¼Òµå¸¦ °¡Á®¿Â´Ù.

:form
textfield()¿Í °°ÀÌ ÆûÀ» »ý¼ºÇÏ´Â ¸Þ¼Òµå¸¦ °¡Á®¿Â´Ù.

:html2
HTML 2.0ÀÇ Ç¥ÁØ Å±׸¦ »ý¼ºÇÏ´Â ¸ðµç ¸Þ¼Òµå¸¦ °¡Á®¿Â´Ù.

:html3
HTML 3.0¿¡¼­ Á¦¾ÈµÈ ű×(<table>, <super>¿Í <sub>¿Í °¥Àº)¸¦ »ý¼ºÇÏ´Â ¸ðµç ¸Þ¼Òµå¸¦ °¡Á®¿Â´Ù.

:netscape
³Ý½ºÄÉÀÙ¿¡¼­ Á¤ÀÇÇÑ HTML È®ÀåÀ» »ý¼ºÇÏ´Â ¸ðµç ¸Þ¼Òµå¸¦ °¡Á®¿Â´Ù.

:html
¸ðµç HTML ű×(¿¹:'html2' + 'html3' + 'netscape')¸¦ »ý¼ºÇÏ´Â ¸Þ¼Òµå¸¦ °¡Á®¿Â´Ù.

:standard
Ç¥ÁØ Æ¯Â¡, 'html2', 'html3', 'form'°ú 'cgi'À» °¡Á®¿Â´Ù.

:all
»ç¿ëÇÒ ¼ö ÀÖ´Â ¸ðµç ¸Þ¼Òµå¸¦ °¡Á®¿Â´Ù. ¿ÏÀüÇÑ ¸ñ·ÏÀº %TAGS°¡ Á¤ÀÇµÈ CGI.pmÀÇ Äڵ带 º»´Ù.

CGI.pm¿¡¼­ Áö¿øÇÏÁö ¾Ê´Â ÇÔ¼ö¸íÀ» °¡Á®¿Â´Ù¸é CGI.pmÀº ÀÌ °ÍÀ» »õ·Î¿î HTML ű׷Πó¸®Çϸç Àû´çÇÑ ¼­ºê·çƾÀ» »ý¼ºÇÑ´Ù. ±×¸®°í ³ª¼­ ÀÌ °ÍÀ» ´Ù¸¥ HTML ÅÂ±×¿Í °°ÀÌ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ÀÌ °ÍÀº ±Þ¼Óµµ·Î º¯ÇÏ´Â HTML Ç¥ÁØÀ» À§ÇØ Á¦°øµÈ´Ù. ¿¹¸¦µé¾î Money$fot´Â <GRADIENT>¶ó´Â »õ·Î¿î ű×(ÄÄÇ»Å͸¦ ´Ù½Ã ºÎÆÃÇÒ ¶§±îÁö »ç¿ëÀÚÀÇ µ¥½ºÅ©Å¾ÀÇ »ö»óÀ» ÁÖ±âÀûÀ¸·Î º¯°æÇÏ´Â)À» ¹ßÇ¥Çß´Ù. ÀÌ °ÍÀ» »ç¿ëÇϱâÀ§ÇØ CGI.pmÀÇ »õ¹öÀüÀ» ±â´Ù¸± ÇÊ¿ä¾øÀÌ ´ÙÀ½°ú °°Àº ¹æ¹ýÀ» »ç¿ëÇÏ¸é µÈ´Ù.

use CGI qw/:standard :html3 gradient/;
print gradient({-start=>'red',-end=>'blue'});

ÁÖÀÇ: CGI.pmÀÇ ½ÇÇà¼Óµµ¿¡ °ü½ÉÀÌ ÀÖ´Ù¸é ÀÐÀ» ½Éº¼À» ÁöÁ¤Çϴ ǥÁØ Exporter Çü½ÄÀ» »ç¿ëÇÏÁö ¸»±â ¹Ù¶õ´Ù. ÀÌ °ÍÀº ¾ÕÀ¸·Î º¯°æµÉ °ÍÀÌ´Ù.

ÀÓÀÇÀÇ »óÅ À¯Áö CGI¸¦ °¡Á®¿À°Å³ª ÆûÀ» »ý¼ºÇÏ´Â ¸Þ¼Òµå¸¦ °¡Á®¿À¸é ±âº» CGI °³Ã¼°¡ »ý¼ºµÇ¸ç ÀÓÀÇÀÇ ¸Þ¼Òµå¸¦ óÀ½ »ç¿ëÇÒ ¶§ ÀÚµ¿ÀûÀ¸·Î ÃʱâÈ­µÈ´Ù. ÀÌ·¯ÇÑ °Í¿¡´Â param(), textfield(), submit()¿Í °°Àº °ÍµéÀÌ ÀÖ´Ù(CGI °³Ã¼¸¦ Á÷Á¢ Á¢±ÙÇÏ·Á¸é Àü¿ª º¯¼ö, $CGI::Q¸¦ »ç¿ëÇÑ´Ù). CGI.pmÀÇ ¸Þ¼Òµå¸¦ °¡Á®¿ÈÀ¸·Î¼­ º¸±â¿¡ ÈξÀ ¿ì¾ÆÇÑ ½ºÅ©¸³Æ®¸¦ ÀÛ¼ºÇÒ ¼ö ÀÖ´Ù.

 1 : #!/usr/local/bin/perl
 2 : # Æû¹®¼­¸¦ »ý¼ºÇϸç 
 3 : # ÆûÀÇ ÀÔ·ÂÀ» ´Ù½Ã Ãâ·ÂÇÏ´Â CGI
 4 : use CGI qw/:standard/;
 5 : print header,
 6 : 	start_html('°£´ÜÇÑ ¿¹'),
 7 : 	h1('°£´ÜÇÑ ¿¹'),
 8 : 	start_form,
 9 : 	"À̸§ÀÌ ¹¹´Ï? ",textfield('name'),p,
10 : 	"¿øÇÏ´Â °ÍÀº ¹¹´Ï?", p,
11 : 	checkbox_group(-name=>'words',
12 : 		-values=>['¿©ÀÚ','¾Æ³»','¿©µ¿»ý','¿©ÀÚ¾Ö'],
13 : 		-defaults=>['¿©ÀÚ','¾Æ³»']), p,
14 : 	"ÁÁ¾ÆÇÏ´Â »öÀº? ",
15 : 	popup_menu(-name=>'color',
16 : 		-values=>['»¡°£»ö','³ì»ö','ÆĶõ»ö','²ÀÁö»ö']),p,
17 : 	submit('º¸³»±â'),
18 : 	end_form,
19 : 	hr;
20 : 
21 : if (param()) {
22 : 	print "´Ï À̸§: ",em(param('name')),p,
23 : 	"ÇÊ¿äÇÑ °Í: ",em(join(", ",param('words'))),p,
24 : 	"ÁÁ¾ÆÇÏ´Â »ö: ",em(param('color')),
25 : 	hr;
26 : }
½ÇÇà°á°ú

example1.cgi ÇÁ¶ó±×¸¶

ÇÔ¼öÀÇ ÁýÇÕ¿Ü¿¡¼­ °¡Á®¿Ã ¼ö ÀÖ´Â ¸¹Àº ¼öÀÇ ÇÁ¶ó±×¸¶°¡ Á¸ÀçÇÑ´Ù. Ç×»ó ´ë½¬(-)·Î ½ÃÀÛÇÏ´Â ÇÁ¶ó±×¸¶´Â CGI.pmÀÇ µ¿ÀÛ ¹æ¹ýÀ» º¯°æÇÑ´Ù. ÇÁ¶ó±×¸¶, ÇÔ¼öÁýÇÕ°ú °³°³ÀÇ ÇÔ¼ö´Â µ¿ÀÏÇÑ

use()
ÇàÀ» ÅëÇØ °¡Á®¿Ã ¼ö ÀÖ´Ù. ¿¹¸¦µé¾î ´ÙÀ½¿¡ »ç¿ëÇÑ ¹®ÀåÀº ÇÔ¼öÀÇ standartÁýÇÕÀ» µð¹ö±ë ¸ðµå¸¦ ²ö »óÅÂ(ÇÁ¶ó±×¸¶ -no_debug)¿¡¼­ °¡Á®¿À°Ô µÈ´Ù.

use CGI qw/:standard -no_debug/;

ÇÁ¶ó±×¸¶ÀÇ ÇöÀç ¸ñ·ÏÀº ´ÙÀ½°ú °°´Ù.

-any
CGI -any¸¦ »ç¿ëÇϸé ÁúÀÇ °³Ã¼°¡ ÀνÄÇÏÁö ¸øÇÏ´Â ÀÓÀÇÀÇ ¸Þ¼Òµå´Â »õ·Î¿î HTML ű׷ΠÇؼ®µÈ´Ù. ÀÌ °ÍÀ¸·Î ³Ý½ºÄÉÀÙÀ̳ª Money$oftÀÇ Æ¯º°ÇÑ HTML È®ÀåÀ» Áö¿øÇÒ ¼öÀÖ´Ù.

use CGI qw(-any);
$q=new CGI;
print $q->gradient({speed=>'fast',start=>'red',end=>'blue'});

anyÀ» »ç¿ëÇÏ´Â °æ¿ì ÇÔ¼öÀÇ À̸§À» À߸øÀÔ·ÂÇϸé HTML ű׷ΠÇؼ®µÇ¹Ç·Î ÀÌ °ÍÀº °¡±ÞÀû »ç¿ëÇÏÁö ¾Ê´Â °ÍÀÌ ÁÁ´Ù.

-compile
ÀÌ °ÍÀº Áö½ÃµÈ ÀÚµ¿ ÀûÀç ¸Å¼Òµå°¡ ¸ÕÀú ÄÄÆÄÀÏµÇ°Ô ¸¸µç´Ù. ÀÌ °ÍÀº FastCGI³ª mod_perlÇÏ¿¡¼­ È®ÀåµÈ ½Ã°£Áֱ⿡´ëÇØ ½ÇÇàµÇ´Â ½ºÅ©¸³Æ®¿¡´ëÇØ À¯¿ëÇÏ´Ù. »ç¿ëÇÏ·Á´Â ¸Þ¼Òµå³ª ¸Þ¼Òµå ±º¿¡´ëÇØ ÀÌ °ÍÀ» »ç¿ëÇϱ⠹ٶõ´Ù.

use CGI qw(-compile :standard :html3);

¶Ç´Â

use CGI qw(-compile :all);

ÁÖÀÇ: ÀÌ ¹æ¹ýÀ¸·Î -compile ÇÁ¶ó±×¸¶´Â Ç×»ó ÄÄÆÄÀÏµÈ ÇÔ¼ö¸¦ ÇöÀçÀÇ À̸§°ø°£À¸·Î °¡Á®¿À´Â È¿°ú¸¦ °®´Â´Ù. °¡Á®¿ÀÁö ¾Ê°í ÄÄÆÄÀÏÇÏ·Á¸é ´ë½Å¿¡

compile()
¸¦ »ç¿ëÇÑ´Ù.

-nph
CGI.pmÀÌ NPH(Non-Parsed Header) ½ºÆ®¸³Æ®¿¡´ëÇØ Àû´çÇÑ Çì´õ¸¦ »ý¼ºÇϵµ·Ï ¸¸µç´Ù. ½ºÅ©¸³Æ®°¡ NPH¶ó´Â °ÍÀ» ¼­¹ö¿¡ ÅëÁöÇÏ´Â °Í¿Ü¿¡ ´Ù¸¥ °Íµµ ÇÒ ÇÊ¿ä°¡ ÀÖ´Ù. NPH ½ºÅ©¸³Æ®¿¡´ëÇÑ ³íÀÇ´Â NPH ½ºÅ©¸³Æ® »ç¿ëÇϱâ¿Í ¼­¹ö ¹Ð±â(¸ô¹ÐÁö)¸¦ º¸±â ¹Ù¶õ´Ù.

-autoload
ÀÌ °ÍÀº ÀνÄÇÏÁö ¸øÇÏ´Â ÀÓÀÇÀÇ ÇÔ¼ö´Â CGI.pm¿¡¼­ °¡´ÉÇÑ Æò°¡µÇµµ·Ï ÀÚµ¿ ·Î´õ¸¦ Áßø½ÃŲ´Ù. ÀÌ °ÍÀ¸·Î »ç¿ëÀÚ´Â Èû¼ö¸¦ ½Éº¼ Å×ÀÌºí¿¡ Ãß°¡ÇÏÁö ¾Ê°í ¸ðµç CGI.pmÀÇ ±â´ÉÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù. ÀÌ °ÍÀº ¸Þ¸ð¸® ¼Ò¸ð¸¦ °ÆÁ¤ÇØ¾ß ÇÏ´Â mod_perl »ç¿ëÀÚ¿¡°Ô´Â °ü½ÉÀÖ´Â ÀÏÀÏ °ÍÀÌ´Ù.

°æ°í: -autoload¸¦ »ç¿ëÇÏ´Â °æ¿ì ÇÔ¼ö¿¡´Â ¹Ýµå½Ã °ýÈ£¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù. Áï, hrº¸´Ù´Â hr()¸¦ »ç¿ëÇϰųª ½ºÅ©¸³Æ®ÀÇ ½ÃÀۺκп¡ use subs qw/hr p header/¿Í °°Àº °ÍÀ» Ãß°¡ÇØ¾ß ÇÑ´Ù.

-no_debug
ÀÌ °ÍÀº ¸í·ÉÇà ó¸® Ư¡À» »ç¿ëÇÏÁö ¾Ê°Ô ¸¸µç´Ù. µ¿ÀûÀ¸·Î »ý¼ºµÈ HTMLÀ» ¸¸µé±âÀ§ÇØ CGI.pm ½ºÅ©¸³Æ®¸¦ ¸í·ÉÇà¿¡¼­ ±âµ¿Çϸ鼭 Ç¥ÁØÀÔ·ÂÀ̳ª ¸í·ÉÇàÀ¸·ÎºÎÅÍ CGI ¸Å°³º¯¼ö¸¦ ÀÔ·ÂÇÏ°í ½ÍÁö ¾Ê´Ù¸é ÀÌ ÇÁ¶ó±×¸¶¸¦ »ç¿ëÇÑ´Ù.

use CGI qw(-no_debug :standard);

Ç¥ÁØÀÔ·ÂÀÌ ¾Æ´Ï¶ó ¸í·ÉÇà¿¡¼­¸¸ ¸Å°³º¯¼ö¸¦ ó¸®ÇÏ±æ ¿øÇÑ´Ù¸é ´ÙÀ½°ú °°ÀÌ ÇÒ ¼ö ÀÖ´Ù.

use CGI qw(-no_debug :standard);
restore_parameters(join('&',@ARGV));

º¸´Ù ÀÚ¼¼ÇÑ °ÍÀº µð¹ö±ë¿¡°üÇÑ ÀýÀ» º¸±â ¹Ù¶õ´Ù.

-private_tempfiles
CGI.pmÀº ¾÷·ÎµåµÈ ÆÄÀÏÀ» ó¸®ÇÒ ¼ö ÀÖ´Ù. º¸Åë ÀÌ °ÍÀº ¾÷·ÎµåµÈ ÆÄÀÏÀ» Àӽà Æú´õ¿¡ ÀúÀåÇÏ°í ÆÄÀÏ ¾÷·Îµå°¡ Á¾·áµÆÀ» ¶§ ÆÄÀÏÀ» »èÁ¦ÇÑ´Ù. ±×·¯³ª ÀÌ °ÍÀº ÆÄÀÏ ¾÷·Îµå Àý¿¡¼­ ¼³¸íÇÏ´Â °Íó·³ À§ÇèºÎ´ãÀÌ ÀÖ´Ù. CGI ½ºÅ©¸³Æ®ÀÇ ÀúÀÚ´Â ÀÌ µ¥ÀÌŸ°¡ ±ØºñÀÇ Á¤º¸¶ó°í ÇÒ Áö¶óµµ ¾÷·Îµå ÇÏ´Â µ¿¾È ÀÌ µ¥ÀÌŸ¸¦ ÈÉóº¼ ¼ö ÀÖ´Ù. Unix ½Ã½ºÅÛ¿¡¼­ -private_tempfiles ÇÁ¶ó±×¸¶´Â ÀÌ·¯ÇÑ À§Ç輺À» Á¦°ÅÇϱâ À§ÇØ Àӽà ÆÄÀÏÀ» ¿­°í, ½ÉÁö¾î ÀÓÀÇÀÇ µ¥ÀÌŸ°¡ Àӽà ÆÄÀÏ¿¡ ¾²¿©Áö±â Àü¿¡ ¹Ù·Î »èÁ¦µÇµµ·Ï ¸¸µç´Ù.


´ÙÀ½±Û: Á¦ 3°­ - µ¿Àû¹®¼­ »ý¼ºÇϱâ (38119)1996-07-03
ÀÌÀü±Û: Á¦ 1°­ - CGI.pm: °£´ÜÇÑ ¼³¸í (10689)1996-07-01

¼¼»ó»ç´Â À̾߱â



RSS ±¸µ¶ (À͸í | ȸ¿ø | °­Á | Æ÷·³)
(C) 1996 ~ 2017 QAOS.com All rights reserved.