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

Á¦ 21°­ - ¶óÀ̺귯¸®


¶óÀ̺귯¸®´Â ÀÚÁÖ »ç¿ëµÇ´Â ¼­ºê·çƾÀ» ¸ð¾Æ³õÀº °ÍÀÌ´Ù. ÆÞ¿¡¼­´Â ¼¼°¡Áö ÇüÅÂÀÇ ¶óÀ̺귯¸®¸¦ Á¦°øÇÑ´Ù.

ù¹ø°°¡ °¡Àå ÀϹÝÀûÀ¸·Î »ç¿ëµÇ´Â ¶óÀ̺귯¸®·Î¼­ ¼­ºê·çƾ¿¡´ëÇÑ Á¤ÀǸ¦ ¿­°ÅÇØ ³õÀº ÇüÅÂÀÇ ¶óÀ̺귯¸®ÀÌ´Ù.

µÎ¹ø°°¡ ¶óÀ̺귯¸®ÀÇ ¼­ºê·çƾ¿¡¼­ Áö¿ªº¯¼öÀÇ Á¤ÀǸ¦À¯ÁöÇϵµ·Ï º¯°æÇÑ ÆÐÅ°ÁöÀÌ´Ù.

¸¶Áö¸·À¸·Î ¼¼¹ø°´Â ¸ðµâÀÌ´Ù. ¸ðµâÀº ÆÐÅ°Áö¿¡ °³Ã¼ÀÇ °³³äÀ» µµÀÔÇÑ °ÍÀ¸·Î¼­ ¸¶Ä¡ °³Ã¼¸¦ ÂüÁ¶Çϵí ÆÞÀÇ º¯¼ö¿Í ÇÔ¼ö¸¦ ÂüÁ¶ÇÒ ¼ö ÀÖµµ·Ï ÇÑ °ÍÀÌ´Ù.

ÆÐÅ°Áö¿Í ¸ðµâ¿¡ ´ëÇÑ ³íÀÇ´Â ´ÙÀ½À¸·Î ¹Ì·ç°í ÀÌ Àý¿¡¼­´Â ¶óÀ̺귯¸®¿¡ ´ëÇØ ´Ù·ç°Ú´Ù. ¿ä¾à

¶óÀ̺귯¸®´Â ¼­ºê·çƾÀÇ ÁýÇÕÀ¸·Î ´ÙÀ½°ú °°Àº Çü½ÄÀ¸·Î º°µµÀÇ ÆÄÀÏ¿¡ ¼­ºê·çƾÀ» µÎ¸éµÈ´Ù.

sub SUBROUTINE1 {
	STATEMENT;
}

sub SUBROUTINE2 {
	STATEMENT;
}
.
.
.
sub SUBROUTINEn {
	STATEMENT;
}
1;
SUBROUTINE1~n
¼­ºê·çƾµéÀÇ À̸§
STATEMENT
¼­ºê·çƾ¿¡¼­ ¼öÇàµÇ¾î¾ßÇÒ ¹®Àå
1;
¶óÀ̺귯¸®ÀÇ ¸¶Áö¸· ¸®ÅÏ°ªÀ¸·Î ¹Ýµå½Ã ÇÊ¿äÇÏ´Ù.
¼³¸í

 1 : $locked = 'N';
 2 : 
 3 : sub print_header {
 4 : my ($header)=<<Header;
 5 : Content-Type: text/html
 6 : 
 7 : Header
 8 : 	return $header;
 9 : }
10 : 
11 : sub html_top {
12 : my($title, $style, $class, $jscode, $redirect) = @_;
13 : 
14 : my($top) =<<Top;
15 : <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
16 : <HTML>
17 : <HEAD>
18 : <TITLE>$title</TITLE>
19 : 
20 : <LINK REV="made" HREF="mailto:artech\@syscon.soongsil.ac.kr">
21 : <LINK REL="StyleSheet" HREF="$style">
22 : <META HTTP-EQUIV="content-type" CONTENT="text/html; charset=EUC-KR">
23 : <META NAME="author" content="Jae-Geun, Kim">
24 : $redirect
25 : $jscode
26 : </HEAD>
27 : 
28 : <BODY class=$class>
29 : Top
30 : 	return $top;
31 : }
32 : 
33 : sub html_bot {
34 : 	my($bot) =<<Bot;
35 : </body>
36 : </html>
37 : Bot
38 : 	return $bot;
39 : }
40 : 
41 : sub print_title {
42 : my(@message) = @_;
43 : $top =<<Top;
44 : <H2 class=h3> $message[0] </H2>
45 : <H2 class=ban> $message[1] </H2>
46 : <hr noshade size=4>
47 : 
48 : Top
49 : }
50 : 
51 : sub read_parse {
52 : 	my($buffer, $pair);
53 : 
54 : 	# Query StringÀ» ÀнÀ´Ï´Ù.
55 : 
56 : 	if($ENV{'REQUEST_METHOD'} eq 'GET' || $ENV{'REQUEST_METHOD'} eq 'HEAD') {
57 : 		$buffer = $ENV{'QUERY_STRING'};
58 : 	}elsif($ENV{'REQUEST_METHOD'} eq 'POST') {
59 : 	    read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
60 : 	}else {
61 : 		print "Off Line Mode - Type: name1=value1&name2=value2\n";
62 : 		print "Enter: ";
63 : 		chop($buffer = <STDIN>);
64 : 	}
65 : 
66 : 	# À̸§-°ªÀ¸·Î ±¸¼ºµÈ form µ¥ÀÌŸ¸¦ ºÐ¸®ÇÕ´Ï´Ù.
67 : 	my(@pairs) = split(/&/, $buffer);
68 : 
69 : 	foreach $pair (@pairs) {
70 : 		my($name, $value) = split(/=/, $pair);
71 : 
72 : 		# +¸¦ °ø¹éÀ¸·Î, %HHÇü½ÄÀ» ¿ø·¡ÀÇ °ªÀ¸·Î µÇµ¹¸³´Ï´Ù.
73 : 		$value =~ tr/+/ /;
74 : 		$value =~ s/%(..)/pack("C", hex())/eg;
75 : 		$value =~ s/<!--(.|\n)*-->//g;
76 : 
77 : 		# formÀÇ µ¥ÀÌŸ¸¦ ¿¬°ü¹è¿­¿¡ ÀúÀåÇÕ´Ï´Ù.
78 : 		$FORM{$name} = $value;
79 : 	}
80 : 	return %FORM;
81 : }
82 : 1;

¾Õ¿¡¼­ ÀÛ¼ºÇÑ ¹æ¸í·Ï¿¡´ëÇÑ ¶óÀ̺귯¸®ÀÇ ¿¹ÀÌ´Ù. À§¿¡¼­ ¾Ë ¼ö ÀÖµíÀÌ ¶óÀ̺귯¸®¸¦ ÀÛ¼ºÇϱâ À§Çؼ­´Â ¾Õ¼­ ÀÛ¼ºÇÑ ¼­ºê·çƾÀ» º°µµÀÇ ÆÄÀÏ¿¡ ÀúÀåÇÏ¸é µÈ´Ù.

ÇÑ°¡Áö ÁÖÀÇÇÒ °ÍÀº ¶óÀ̺귯¸®´Â ¼­ºê·çƾÀÇ Á¤ÀǸ¦ ¸ð¾Æ³õÀº °Í¿¡ ºÒ°úÇÏ´Ù. µû¶ó¼­ À§ÀÇ ¶óÀ̺귯¸®¸¦ °¡Á®¿À°Ô µÇ¸é À¯È¿ÄÚµå´Â Çϳªµµ Á¸ÀçÇÏÁö ¾Ê´Â ÆÄÀÏÀ» ºí·¯¿À°ÔµÈ´Ù.

ÀÌ°ÍÀ» ¸·±âÀ§ÇØ ¼­ºê·çƾÀÇ Á¦Àϸ¶Áö¸· Çà¿¡ À¯È¿Äڵ带 ¸®ÅÏÇÒ ¼ö ÀÖµµ·Ï

82 : 1;

Äڵ带 »ðÀÔÇß´Ù. ¶óÀ̺귯¸® ºí·¯¿À±â »ç¿ëÇü½Ä

require './mylib.pl';

¶óÀ̺귯¸®¸¦ ÂüÁ¶ÇÏ´Â ÇÁ·Î±×·¥°ú ¶óÀ̺귯¸®°¡ °°Àº µð·ºÅ丮¿¡ ÀÖ´Â °æ¿ì ¸í½ÃÀûÀ¸·Î ÇöÀç µð·ºÅ丮ÀÓÀ» Ç¥½ÃÇØ¾ß ÇÑ´Ù.

ÁÖÀÇ: ÇöÀç µð·ºÅ丮ÀÓÀ» ¸í½ÃÀûÀ¸·Î Ç¥½ÃÇÏÁö ¾Ê´Â °æ¿ì ÆÞÀº ÆÞÀÇ Ç¥ÁØ ¶óÀ̺귯¸® °æ·Î¿¡¼­ ¶óÀ̺귯¸®¸¦ ã°ÔµÈ´Ù.

require '/home/artech/public_html/mylib.pl';

¶óÀ̺귯¸®¸¦ ÂüÁ¶ÇÏ´Â ÇÁ·Î±×·¥°ú ¶óÀ̺귯¸®°¡ ´Ù¸¥ µð·ºÅ丮¿¡ ÀÖ´Â °æ¿ì ÇØ´ç µð·ºÅ丮ÀÇ Àý´ë °æ·Î¸¦ »ç¿ëÇؼ­ ¶óÀ̺귯¸®¸¦ ÂüÁ¶ÇÑ´Ù.

push(@INC, '/home/artech/public_html');
require 'mylib.pl';

ÂüÁ¶ÇÏ´Â ¶óÀ̺귯¸®°¡ ¾îµð¿¡ ÀÖµç ¶óÀ̺귯¸®¸¦ ÆÞÀÇ Ç¥ÁØ ¶óÀ̺귯¸® °æ·Î¿¡ µî·ÏÇÏ°í ÇØ´ç ¶óÀ̺귯¸®¸¦ ÂüÁ¶ÇÑ´Ù.

ÁÖÀÇ1: push´ë½Å¿¡ unshift¸¦ »ç¿ëÇصµ µÈ´Ù. ÀÌ °æ¿ì ÀÚ½ÅÀÌ ÀÛ¼ºÇÑ ¶óÀ̺귯¸®°¡ Ç¥ÁØ ¶óÀ̺귯¸®º¸´Ù ¸ÕÀú ÂüÁ¶µÈ´Ù.

ÁÖÀÇ2: require 'mylib.pl'¿¡¼­ º¸µí ÇöÀç µð·ºÅ丮ÀÓÀ» Ç¥½ÃÇÏ´Â "./"°¡ »ý·«µÇ¾ú´Ù. ¶óÀ̺귯¸® ÀÛ¼º½Ã À¯ÀÇ»çÇ×

ÀÌ·¸°Ô ÀÛ¼ºÇÑ ¶óÀ̺귯¸®´Â ¾ðÁ¦, ¾îµð¼­, ´©°¡ »ç¿ëÇÒÁö ¾Ë ¼ö ¾øÀ¸¹Ç·Î ´ÙÀ½ÀÇ ±ÔÄ¢À» ¹Ýµå½Ã ÁöÄÑ¾ß ÇÑ´Ù. Áö¿ªº¯¼ö »ç¿ë

ÆÞÀº Ưº°ÇÑ ¾ð±ÞÀÌ ¾øÀ¸¸é Ç×»ó Àü¿ªº¯¼ö¸¦ »ç¿ëÇϹǷΠ¶óÀ̺귯¸®¿¡¼­ ¾ê±âÄ¡ ¾Ê°Ô Main ·çƾÀÇ º¯¼ö¸¦ º¯°æÇÒ ¼ö ÀÖ´Ù. µû¶ó¼­ ³Ñ°Ü¹ÞÀº ÀÎÀÚ¸¦ Æ÷ÇÔ, ¼­ºê·çƾ¿¡¼­ »ç¿ëÇÏ´Â ¸ðµç º¯¼ö´Â Áö¿ªº¯¼ö·Î ¼±¾ðÇØ¾ß ÇÑ´Ù.

12 : my($title, $style, $class, $jscode, $redirect) = @_;
ÀÎÀÚÀÇ Àü´Þ

ÆÞ¿¡¼­ ÀÎÀÚÀÇ Àü´ÞÀº @_¸¦ ÅëÇØÀÌ·ç¾î Áø´Ù. @_¸¦ ¹Ù·Î ÂüÁ¶Çϱ⠺¸´Ù´Â ´ÙÀ½°ú °°ÀÌ Àü´Þ ¹ÞÀº ÀÎÀÚ¸¦ Áö¿ªº¯¼ö·Î º¯È¯ÇÏ°í ÀÌ Áö¿ª º¯¼ö¸¦ ¼­ºê·çƾ¿¡¼­ »ç¿ëÇÑ´Ù.

12 : my($title, $style, $class, $jscode, $redirect) = @_;

&sub(*FORM)°ú °°Àº Çü½ÄÀ¸·Î ¸®Å쵃 º¯¼ö¸¦ È£Ãâ½Ã ÁöÁ¤ÇÒ ¼ö ÀÖ°Ô ÇϱâÀ§Çؼ­´Â ´ÙÀ½°ú °°Àº Çü½ÄÀ¸·Î Áö¿ªº¯¼ö¸¦ ¼±¾ðÇØ¾ß ÇÑ´Ù.

sub NAME {
	local(*in) = @_;
	STATEMENTS;
	return *in;
}
°ªÀÇ ¸®ÅÏ

ÆÞ¿¡¼­ °ªÀ» ¸®ÅÏÇÏ´Â ¹æ¹ýÀº ¾Õ¼­ ¾ê±âÇßµí µÎ°¡Áö°¡ Á¸ÀçÇÑ´Ù. ¶óÀ̺귯¸®¸¦ ÀÛ¼ºÇÏ´Â °æ¿ì¿¡´Â °¡±ÞÀû ¸í½ÃÀûÀ¸·Î °ªÀ» ¸®ÅÏÇØ¾ß ÇÑ´Ù. ¿¬½À - ¹æ¸í·Ï

¾Õ¼­ ÀÛ¼ºÇÑ ¸ðµç ¼­ºê·çƾÀ» mylib.plÀ̶ó´Â ¶óÀ̺귯¸®·Î º¯È¯Ç϶ó.



´ÙÀ½±Û: Á¦ 22°­ - CGI¿ë ¶óÀ̺귯¸®(cgi-lib.pl) (13414)1996-04-22
ÀÌÀü±Û: Á¦ 20°­ - ¼­ºê·çƾ (8650)1996-04-20

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



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