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

Á¦ 12°­ - ÆÄÀÏÇÚµé


ÆÞÀº ÆÄÀÏ ÀÔÃâ·ÂÀ» ó¸®ÇÏ´Â ¾ÆÁÖ ¾ÈÀüÇÑ ¹æ¹ýÀ» °¡Áö°í ÀÖ´Ù. ÀÌ ¿¬»êÀÚ´Â ¸í·ÉÇà¿¡¼­ »ç¿ëÇÏ´Â ¸®´ÙÀÌ·º¼Ç(> < >> |µî)°ú À¯»çÇÏ´Ù. ¿ä¾à »ç¿ëÇü½Ä

open(FILEHANDLE,FILENAME); 
close(FILEHANDLE);
FILEHANDLE
$, @, %¿Í °°Àº Á¢µÎ¾î¸¦ »ç¿ëÇÏÁö ¾Ê´Â´Ù.
¹®ÀÚ¿­ÀÌ ¾Æ´Ï¹Ç·Î ÀοëÇÏÁö ¾Ê´Â´Ù.
FILENAME
ÆÄÀÏ ¶Ç´Â µð·ºÅ丮¸¦ Ç¥½ÃÇÏ´Â ¹®ÀÚ¿­
Open Mode
¸ðµå ¼³¸í
"FILE" FILEÀ» ÀÔ·Â ¸ðµå·Î ¿¬´Ù. ¶ÇÇÑ "<FILE"µµ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
"> FILE" FILEÀ» Ãâ·Â ¸ðµå·Î ¿¬´Ù. ÇÊ¿äÇÑ °æ¿ì ÆÄÀÏÀ» »ý¼ºÇÑ´Ù.
">> FILE" FILEÀ» Ãß°¡ ¸ðµå·Î ¿¬´Ù.
"+> FILE" FILEÀ» Àбâ/¾²±â ¸ðµå·Î ¿¬´Ù.
"| CMD" CMD·Î ÀÔ·ÂµÉ ÆÄÀÌÇÁ¸¦ ¿¬´Ù. Ãâ·Â ÆÄÀÏÇÚµé.
"CMD |" CMD·Î Ãâ·ÂµÉ ÆÄÀÌÇÁ¸¦ ¿¬´Ù. ÀÔ·Â ÆÄÀÏÇÚµé.
"-" Ç¥ÁØÀÔ·ÂÀ» ¿¬´Ù.
"<-" Ç¥ÁØÃâ·ÂÀ» ¿¬´Ù.
CMD
ÀÓÀÇÀÇ bourne shell ¸í·É(ÀÚüÀÇ ÆÄÀÌÇÁ, ¸®´ÙÀÌ·ºÆ® Æ÷ÇÔ).
<>
Àб⠿¬»êÀÚ. Çà´ÜÀ§·Î ÀÐÀ¸¸ç »ç¿ëµÇ´Â ȯ°æ¿¡ µû¶ó ´Ù¸£°Ô µ¿ÀÛÇÑ´Ù.

	# ½ºÄ®¶ó·Î ÇÑ ÇàÀ» Àд´Ù.
	$line = <FILEHANDLE>; 
	# ¹è¿­·Î Àüü ÆÄÀÏÀ» Àд´Ù(ÁÖÀÇ - ¸Þ¸ð¸®¸¦ ¸¹ÀÌ ÃëÇÑ´Ù)
	@lines = <FILEHANDLE>; 
¿¹ ÆÄÀÏÇÚµé ¿­±â

open(INFO, $file);		# INFO¸¦ ÅëÇØ Àб⸸ °¡´É
open(INFO, "<$file");		# INFO¸¦ ÅëÇØ Àб⸸ °¡´É
open(INFO, ">$file");		# INFO¿¡ ¾²±â¸¸ °¡´É
open(INFO, ">>$file");		# INFO¿¡ ¾²±â¸¸ °¡´É
open(INFO, ">+$file");		# INFO¸¦ ÅëÇØ Àаí, ¾²±â °¡´É
open(INFO, '-');		# Ç¥ÁØÀÔ·Â ¿­±â
open(INFO, '<-');		# Ç¥ÁØÃâ·Â ¿­±â
ÆÄÀÏÇÚµé ´Ý±â

close(INFO);
ÆÄÀÏÀбâ

open(INFO, $file);		# ÀÔ·ÂÆÄÀÏ Çڵ鿭±â
@line = <INFO>;			# INFO·ÎºÎÅÍ ÁÙ´ÜÀ§·Î Àоî @line¿¡ ÀúÀå
close(INFO);			# ÆÄÀÏÇÚµé ´Ý±â
ÆÄÀϾ²±â

open(INFO, ">$file");		# Ãâ·Â ÆÄÀÏ ÇÚµé ¿­±â
print INFO @line;		# INFO¿¡ @lineÀÇ ³»¿ëÀ» Ãâ·Â
close(INFO);
¼³¸í

´ÙÀ½Àº UNIX cat ¸í·É°ú °ÅÀÇ µ¿ÀÏÇÑ ÆÞ ÇÁ·Î±×·¥ÀÌ´Ù.

1: #!/usr/local/bin/perl
2: #
3: # ¾ÏÈ£ÆÄÀÏÀ» Àаí, ÀÌ°ÍÀ» Ãâ·ÂÇÑ ÈÄ, ´Ù½Ã ´Ý´Â´Ù.
4:
5: $file = '/etc/passwd';	# ÆÄÀϸí
6: open(INFO, $file);		# ÆÄÀÏ ¿­±â
7: @lines = <INFO>;		# Àо ¹è¿­·Î ÀúÀå
8: close(INFO);			# ÆÄÀÏ ´Ý±â
9: print @lines;		# ¹è¿­Ãâ·Â

open ÇÔ¼ö´Â ÀÔ·Â ÆÄÀÏÀ» ¿¬´Ù(¿¹: Àбâ). ù¹ø° ¸Å°³º¯¼ö´Â ¾ÕÀ¸·Î ÆÞÀÌ ÆÄÀÏÀ» ÂüÁ¶ÇÒ ¶§ »ç¿ëÇÏ´Â filehandleÀÌ´Ù. µÎ¹ø° ¸Å°³º¯¼ö´Â ÆÄÀϸíÀ» Ç¥½ÃÇϴ ǥÇö½ÄÀÌ´Ù. ÆÄÀϸíÀÌ ÀοëµÇ¸é ½©È®Àå¾øÀÌ ¹®ÀÚÀûÀ¸·Î ÃëÇØÁø´Ù. µû¶ó¼­ Ç¥Çö½Ä '~/notes/todolist'´Â ¼º°øÀûÀ¸·Î Çؼ®µÇÁö ¸øÇÑ´Ù. °­Á¦·Î ½© È®ÀåÀ» ÇÏ·Á¸é ¼Ò°ýÈ£¸¦ »ç¿ëÇÑ´Ù. Áï, <~/notes/todolist>¸¦ »ç¿ëÇÏ¸é µÈ´Ù.

close ÇÔ¼ö´Â ÆÄÀÏ¿¡´ëÇÑ µ¿ÀÛÀ» Á¾·áÇϵµ·Ï ÆÞ¿¡ Áö½ÃÇÑ´Ù.

ÆÄÀÏÇڵ鿡´ëÇÑ ³íÀÇ¿¡¼­ Ãß°¡ÇØ¾ß ÇÏ´Â ¸î¸î À¯¿ëÇÑ °ÍµéÀÌ ÀÖ´Ù. ¸ÕÀú open¹®Àº ÀԷ»Ӹ¸¾Æ´Ï¶ó Ãâ·Â ÆÄÀÏ, Ãß°¡¿ë ÆÄÀÏÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù. Ãâ·Â ÇϱâÀ§Çؼ­´Â ÆÄÀÏ¸í ¾Õ¿¡ >¸¦ ºÙÀ̸ç, µ¡ºÙÀ̱âÀ§Çؼ­´Â >>¸¦ ºÙÀδÙ:

open(INFO, $file);		# ÀÔ·ÂÀ¸·Î ¿­±â
open(INFO, ">$file");		# Ãâ·ÂÀ¸·Î ¿­±â
open(INFO, ">>$file");		# Ãß°¡·Î ¿­±â
open(INFO, "<$file");		# ÀÔ·ÂÀ¸·Î ¿­±â

µÎ¹ø°·Î Ãâ·Â¿ëÀ¸·Î ÀÌ¹Ì ¿­Àº ÆÄÀÏ¿¡ ¾î¶°ÇÑ °ÍÀ» Ãâ·ÂÇÏ·Á¸é Ãß°¡ÀûÀÎ ¸Å°³º¯¼ö¸¦ °®´Â print ¹®À» »ç¿ëÇÑ´Ù. ÀÓÀÇÀÇ ¹®ÀÚ¿­À» INFO¶ó´Â ÆÄÀÏÇڵ鿡 Ãâ·ÂÇϱâÀ§ÇØ ´ÙÀ½°ú °°Àº ¹®ÀåÀ» »ç¿ëÇÑ´Ù.

print INFO "ÀÌ ÇàÀÌ ÆÄÀÏ·Î ¾²¿©Áø´Ù.\n";

¼¼¹ø°·Î Ç¥ÁØÀÔ·Â(º¸Åë Å°º¸µå)°ú Ç¥ÁØÃâ·Â(º¸Åë È­¸é)À» ¿­±âÀ§ÇØ ´ÙÀ½°ú °°Àº ¹®ÀåÀ» »ç¿ëÇÒ ¼öµµ ÀÖ´Ù.

open(INFO, '-');	# Ç¥ÁØÀÔ·Â ¿­±â
open(INFO, '<-');	# Ç¥ÁØÃâ·Â ¿­±â

À§ÀÇ ÇÁ·Î±×·¥¿¡¼­ Á¤º¸´Â ÆÄÀϷκÎÅÍ ÀÐÇôÁø´Ù. ÆÄÀÏÀº INFO ÆÄÀÏÀ̸ç, ÀÌ°ÍÀ¸·Î ºÎÅÍ ÀбâÀ§ÇØ ÆÞÀº ¼Ò°ýÈ£¸¦ »ç¿ëÇÑ´Ù. µû¶ó¼­

@lines = <INFO>;

Àº ÆÄÀÏÇڵ鿡ÀÇÇØ Áö½ÃµÈ ÆÄÀÏÀ» ¹è¿­ @lines·Î ÀоîµéÀδÙ. <INFO>¶ó´Â Ç¥Çö½ÄÀº Çѹø¿¡ ÆÄÀÏ Àüü¸¦ ÀаԵȴÙ. ÀÌ °ÍÀº ¹è¿­ ȯ°æ¿¡¼­ ÀбⰡ ÃëÇØÁ³±â ¶§¹®ÀÌ´Ù. @lines¸¦ ½ºÄ®¶ó $lines·Î ´ëÄ¡Çϸé ÇÑ Çุ ÀÐÇôÁø´Ù. ¾î¶°ÇÑ °æ¿ìÀÌµç °¢ ÇàÀº °³Ç๮ÀÚ·Î ³¡³­´Ù. ÆÄÀÏ°Ë»ç ¿¬»êÀÚ

ÆÞÀÌ ½©¿¡¼­ ºô·Á¿Â ÇÑ°¡Áö Ư¡Àº °£´ÜÇÑ ÆÄÀÏ °Ë»ç ¿¬»êÀÚÀÌ´Ù. ÀϹÝÀûÀ¸·Î °Ë»ç ¿¬»êÀº Á¶°Ç½ÄÀÇ ÀϺημ­ »ç¿ëµÈ´Ù. °¢°¢ÀÇ ¿¬»êÀÚ´Â ½ÃÇèÇÒ ÆÄÀÏ ¶Ç´Â µð·ºÅ丮¿Í °°Àº ½ºÄ®¶ó °ªÀ» ÃëÇÑ´Ù. À̵éÀº ¿¬»êÀÚÀÌÁö ÇÔ¼ö°¡ ¾Æ´Ï¹Ç·Î °ýÈ£´Â ÇÊ¿ä¾ø´Ù´Â °ÍÀ» ÁÖÀÇÇϱ⠹ٶõ´Ù.

¿¬»êÀÚ ¼³ ¸í ¸®ÅÏ°ª
-r ÀбⰡ´É ¿©ºÎ 1/0
-x ½ÇÇà°¡´É ¿©ºÎ 1/0
-e Á¸Àç¿©ºÎ ¿©ºÎ 1/0
-d µð·ºÅ丮 ¿©ºÎ 1/0
-f ÀϹÝÆÄÀÏ ¿©ºÎ 1/0
-s ÆÄÀÏÅ©±â ÆÄÀÏÅ©±â
-z 0 ¹ÙÀÌÆ® ÆÄÀÏ 1/0
-T ÅؽºÆ®ÆÄÀÏ ¿©ºÎ 1/0
-B ÀÌÁøÆÄÀÏ ¿©ºÎ 1/0
-M »ý¼ºÀÏÀÚ 0ÀÌ»óÀÇ °ª

 1: $homedir = (getpwnam(artech))[7]; 
 2: if (-e "$homedir/.cshrc") { 
 3:     # »ç¿ëÀÚÀÇ È¨ µð·ºÅ丮¿¡ C Shell ÆÄÀÏÀÌ ÀÖ´ÂÁö¸¦ °Ë»ç
 4:     open(F "$homedir/.cshrc");
 5: 	@line = <F>;
 6: 	close(F);
 7: 	print @line;
 8: }else {
 9: 	print "C Shell ÆÄÀÏÀÌ ¾ø½À´Ï´Ù.\n";
10: }

getpwnam¸¦ ÅëÇÑ ½Ã½ºÅÛ°úÀÇ ÀÎÅÍÆäÀ̽º¸¦ ÁÖÀÇÇϱ⠹ٶõ´Ù. Æнº¿öµå ÆÄÀÏ°ú °°Àº °Íµé(NIS³ª À¯»çÇÑ °ÍµéÀ» ÅëÇؼ­µµ °¡´ÉÇÏ´Ù)À» Á¢±ÙÇÒ ¼öÀÖ´Â ±â´ÉÀÌ ³»ÀåµÇ¾î ÀÖ´Ù´Â °Í¶§¹®¿¡ ÆÞÀº ½Ã½ºÅÛ °ü¸®Àڵ鿡°Ô¼­ Æø³Ð°Ô »ç¿ëµÈ´Ù.

getpwnam°¡ ¸®ÅÏÇÏ´Â ¸®½ºÆ®¸¦ ¸í½ÃÀûÀ¸·Î ÂüÁ¶ÇÑ´Ù´Â °ÍÀ» ÁÖÀÇÇϱ⠹ٶõ´Ù. getpwnam´Â Æнº¿öµå ÆÄÀϳ» »ç¿ëÀÚ¿¡´ëÇÑ ¸ðµç Á¤º¸¸¦ ¸®ÅÏÇϸç, ÇÁ·Î±×·¥¿¡¼­´Â ´ÜÁö 8¹ø° ¿ä¼Ò¸¸À» ÃëÇÑ´Ù. Ç¥ÁØÀÔ·Â(STDIN)

ÆÞ¿¡¼­ Å°º¸µå·ÎºÎÅÍ ÀÔ·ÂÀ» ¹Þ¾ÆµéÀ̱âÀ§ÇØ Ç¥ÁØÀÔ·Â(STDIN)À» »ç¿ëÇÑ´Ù. STDINÀº STDOUT, STDERR°ú ´õºÒ¾î ½Ã½ºÅÛ¿¡¼­ ¹Ì¸® Á¤ÀÇÇÑ ÆÄÀÏ ÇÚµéÀ̹ǷΠopenÇÏÁö ¾Ê°í ¹Ù·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù.

 1 : #! /usr/local/bin/perl
 2 : 
 3 : print "À̸§Àº ¸ð´Ï? ";
 4 : chop($a = <STDIN>);
 5 : 
 6 : print "\n À̸§Àº $aÀ̱¸³ª\n";
 7 : 
 8 : print "´Ï°¡ ÁÁ¾ÆÇÏ´Â °ÍÀ» ¸ùÁ¶¸® ÀÔ·ÂÇغÁ¶ó.\n";
 9 : @favor = <STDIN>;
10 : 
11 : print "Â¥½Ä º°°É´Ù ÁÁ¾ÆÇϳ×?\n";
12 : print "´Ï°¡ ÁÁ¾ÆÇÏ´Â °Í: \n";
13 : print @favor;
¿¬½À - ¹æ¸í·Ï

»ç¿ëÀÚÀÇ ÀÔ·ÂÀ» guestbook.html·Î ÀúÀåÇϵµ·Ï guest.cgi¸¦ º¯°æÇÑ´Ù. »ç¿ëÀÚ ÀÔ·ÂÀ» È­¸éÀ¸·Î Ãâ·Â½ÃÅ°´Â ºÎºÐÀº º¯°æÇÒ ÇÊ¿ä°¡ ¾ø´Ù.

ÆÄÀϷκÎÅÍ µ¥ÀÌÅ͸¦ Àаųª ¾²±â À§Çؼ­´Â ´ÙÀ½°ú °°Àº ¹æ¹ýÀ» »ç¿ëÇÑ´Ù. Àбâ

open(F, file) || die "$!";
@line = <F>;
close(F);
»ý¼ºÇϱâ

open(F, '>file') || die "$!";
print F @line;
close(F);
Ãß°¡Çϱâ

open(F, '>>file') || die "$!";
print F @line;
close(F);

ÁÖÀÇ »ç¿ëÀÚÀÇ ÀÔ·ÂÀ» guestbook.html¿¡ ¾²±âÀ§Çؼ­´Â guestbook.html ÆÄÀÏÀÇ »ç¿ë±ÇÇÑÀº ¹Ýµå½Ã 666 À̾î¾ß ÇÑ´Ù. CGI¸¦ ±âµ¿ÇϱâÀü¿¡ guestbook.html ÆÄÀÏÀÇ »ç¿ë±ÇÇÑÀ» È®ÀÎÇØ º¸±â ¹Ù¶õ´Ù.



´ÙÀ½±Û: Á¦ 13°­ - print ¹® (9013)1996-04-13
ÀÌÀü±Û: Á¦ 11°­ - ½Ã½ºÅÛ º¯¼ö (7478)1996-04-11

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



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