XI. ÆÄÀÏ ÀÔÃâ·Â ¹× °ü¸®
ÀÌÁ¦´Â ±Ã±ØÀûÀÎ ¸ñÇ¥ÀÎ ÆÄÀÏ ÀÔÃâ·Â ¹× °ü¸®¿¡ ´ëÇØ¼ ¾Ë¾Æº¸µµ·Ï ÇÑ´Ù.
¹æ¸í·ÏÀ» ¸¸µé´øÁö, °Ô½ÃÆÇÀ» ¸¸µé´øÁö °¡Àå Áß¿äÇϰí ÁÖµÈ ±â´ÉÀº ÆÄÀÏÀ» Àаí, ¾²°í, »õ·Î ¸¸µé°í, Áö¿ì°í ÇÏ´Â ±â´ÉÀÌ´Ù. "ÆÄÀÏ" Àº HTML ¹®¼°¡ µÉ ¼ö ÀÖ°í, ȤÀº ÀÏÁ¤ÇÑ ±¸ºÐÀÚ·Î ±¸ºÐµÈ µ¥ÀÌŸ ÆÄÀÏÀÌ µÉ ¼öµµ ÀÖ´Ù.
¾î¶² ÆÄÀÏ¿¡ Á¢±Ù(Access)Çϱâ À§Çؼ´Â ¹Ýµå½Ã, ÆÄÀÏÀ» ¸Þ¸ð¸®¿¡ ¿Ã·Á ³õ¾Æ¾ß ÇÑ´Ù. ÀÌ ¼³¸íÀº C¾ð¾î¿¡¼µµ ¼³¸íµÇ´Â °ÍÀÌ´Ù. ±×·¯±â À§Çؼ ¸ÕÀú ¾²ÀÌ´Â ÇÔ¼ö°¡ ÀÖ´Ù.
open([file-handle], "[access mode][file-name]");
open ÇÔ¼ö´Â ÆÄÀϸíÀÌ [file-name]ÀÎ ÆÄÀÏÀ» Àû´çÇÑ [access-mode]·Î ¿¾î ¸Þ¸ð¸®¿¡ ÀûÀç(load)Çϰí, ±× ÆÄÀÏÀÇ ½ÃÀÛ ÁÖ¼Ò(address)·Î [file-handle]À̶ó´Â ÇÚµé(Handle)À» ÀÌ¿ëÇÑ´Ù´Â ¶æÀÌ´Ù. À̰ÍÀº C¾ð¾îÀÇ ÆÄÀÏ ¿±â¿Í °°Àº °³³äÀ̳ª, ±×º¸´Ù´Â ÈξÀ ´õ °£°áÇÑ Ç¥ÇöÀÌ´Ù.
¾Æ·¡´Â "test.txt" À̶ó´Â ÆÄÀÏÀ» Àб⠸ðµå·Î ¿¾î FHANDLEÀ̶ó´Â Çڵ鿡 ÆÄÀÏÀÇ ½ÃÀÛÁÖ¼Ò¸¦ ÁöÁ¤ÇÏ´Â ¿¹Á¦ÀÌ´Ù.
open(FHANDLE, "test.txt") || die "Can't open test.txt!";
ÆÄÀÏÀ» ¿ ¶§ ¹®Á¦°¡ »ý±æ °æ¿ì ¿¡·¯¸¦ Àâ¾Æ ³»´Â ºÎºÐÀÌ ÀÖ¾î¾ß ÇÑ´Ù. ±×·¡¼ ¾²ÀÌ´Â ±¸¹®ÀÌ "or die " ±¸¹®ÀÌ´Ù. ÀÌ ±¸¹®Àº ÆÄÀÏÀ» ¿ °æ¿ì ¹®Á¦°¡ »ý±æ °æ¿ì ÇÁ·Î±×·¥À» Á¾·áÇÏ°Ô µÈ´Ù. À§ÀÇ ¿¹Á¦¿¡¼´Â ÆÄÀÏ ¿±â¿¡ ½ÇÆÐÇÏ¿´À» °æ¿ì "Cat't open test.txt!" ¶ó´Â ¿¡·¯ ¸Þ¼¼Áö¸¦ Ãâ·ÂÇϰí ÇÁ·Î±×·¥À» Á¾·áÇÏ°Ô µÈ´Ù. ÀÌ ±¸¹®Àº ÆÄÀÏÀ» ¿ ¶§ ¹Ýµå½Ã µû¶ó´Ù³à¾ß ÇÑ´Ù.
ÆÄÀÏÀ» ¿±â À§Çؼ ÁöÁ¤ÇØ ÁÖ¾î¾ß ÇÏ´Â ¸ðµå´Â ´ÙÀ½°ú °°´Ù.
Ç¥½Ã ¸ðµå ¼³¸í
Àб⠸ðµå ÆÄÀÏÀ» ¼øÀüÈ÷ Àб⸸À» À§Çؼ ¿ÀÇÂÇÑ´Ù.
> ¾²±â ¸ðµå ÆÄÀÏÀ» Àбâ¿Í ¾²±â ¸ðµå·Î ¿¬´Ù.
¸¸¾à ÁöÁ¤ÇÑ ÆÄÀÏÀÌ Á¸ÀçÇÏÁö ¾ÊÀ» °æ¿ì ÆÄÀÏÀ» »õ·Î »ý¼ºÇÑ´Ù.
>> Ãß°¡ ¸ðµå ÆÄÀÏÀ» Ãß°¡ ¸ðµå·Î ¿ÀÇÂÇÑ´Ù.
ÀÌ·² °æ¿ì¿¡´Â ÇØ´ç ÆÄÀÏÀÇ ¸Ç ³¡¿¡ »õ·Î¿î ³»¿ëÀ» Ãß°¡(Append) ÇÑ´Ù.
ÆÄÀÏÀ» ¿¾úÀ¸¸é ÀÛ¾÷À» ÇØ¾ß ÇÑ´Ù. HTML ¹®¼ °°Àº Text ÆÄÀÏÀ» Àбâ À§Çؼ´Â ¹è¿°ú ÆÄÀÏ ÇÚµéÀ» »ç¿ëÇÑ´Ù. ´ÙÀ½ ¿¹Á¦´Â ÆÄÀÏÀÇ ¸ðµç ¶óÀÎÀ» ¹è¿¿¡ ÇÒ´çÇÏ´Â ÀÏÀ» ÇÑ´Ù.
@lines = <FHANDLE>;
±×¸®°í, ¿¸° ÆÄÀÏÀÇ ÃÑ ÁÙ¼ö °è»êµµ ¸Å¿ì ½±°Ô ÇÒ ¼ö ÀÖ´Ù. ½ºÄ®¶ó º¯¼ö¿¡ ¹è¿¸¸ ÁöÁ¤ÇØÁÖ¸é µÈ´Ù.
$filesize = @lines;
¸Å¿ì °£´ÜÇÏ´Ù. ÀÌÁ¦ ÆÄÀÏÀ» ¿°í, ±× ³»¿ëÀ» ¹è¿¿¡ ÀúÀåÇϸç, ÆÄÀÏÀÇ Á¤º¸µµ °¡Á®¿Ã ¼ö ÀÖ°Ô µÇ¾ú´Ù. ÀÌÁ¦´Â ¿¾ú´ø ÆÄÀÏÀ» ´Ý¾Æº¸ÀÚ. ÆÄÀÏÀ» ¿¾úÀ¸¸é ¹Ýµå½Ã ´Ý¾Æ(close) ¸Þ¸ð¸®¿¡¼ ÆÄÀÏ ÇÚµéÀ» Á¦°ÅÇØ¾ß ÇÑ´Ù. ÆÄÀÏÀº ´ÙÀ½°ú °°ÀÌ ´Ý´Â´Ù.
close(FHANDLE);
ÆÄÀÏÀ» ¿¾î ÆÄÀÏÀÇ ¸ðµç ³»¿ëÀ» Ãâ·ÂÇϱâ À§Çؼ´Â ´ÙÀ½°ú °°ÀÌ ÇÏ¸é µÈ´Ù. ÀÌÁ¦ ¾Õ¿¡¼ ¹è¿î while loop¸¦ ÀÌ¿ëÇÑ´Ù.
open (FHANDLE, "test.txt") || die "Can't open test.txt!";
while (<FHANDLE>) {
print "$_";
}
close(FHANDLE);
´Ù½Ã "test.txt"¸¦ ¿¾î º¸ÀÚ. À̹ø¿¡´Â ¾²±â ¸ðµå·Î ¿¬´Ù.
open(FHANDLE, ">test.txt") || die "Can't open test.txt!";
ÀÌ ÀÛ¾÷À» ÇÏ°Ô µÇ¸é, ÀÌÀüÀÇ ÆÄÀÏ ³»¿ëÀÌ ¾î·´ø °£¿¡, "test.txt"¶ó´Â À̸§ÀÇ »õ·Î¿î ÆÄÀÏÀ» ¾²µµ·Ï ÁغñÇÏ°Ô µÈ´Ù. ±×·¯¸é, ±âÁ¸ÀÇ ÆÄÀÏ ³»¿ëÀº ¾îµð·Î °¥±î? ¹°·Ð »ç¶óÁ® ¹ö¸°´Ù.(»ó´çÇÏ°Ô Á¶½ÉÇϽÿÀ!)
±×·¯¸é, ÀÌÁ¦ ÆÄÀÏ¿¡ ¾î¶² ³»¿ëÀ» ½á º¸ÀÚ. ¾²±â À§Çؼ´Â ÆÄÀÏ ÇÚµéÀ» »ç¿ëÇÏ°Ô µÈ´Ù. ¾²±â ¸ðµå·Î ¿¸° ÆÄÀÏÀÇ ÇÚµé À̸§ÀÌ "FHANDLE" À̹ǷΠprint ÇÔ¼ö¸¦ ´ÙÀ½°ú °°ÀÌ ½á ÁÖ¸é ÆÄÀÏ¿¡ »õ ³»¿ëÀ» ¾µ ¼ö ÀÖ´Ù.
print FHANDLE "This is new content.n";
ÆÄÀÏ¿¡ »õ ³»¿ëÀ» ¾²°í ´õ ÀÌ»ó ÇÒ ÀÏÀÌ ¾øÀ¸¸é ²À ´Ý¾Æ¾ß ÇÑ´Ù.
close(FHANDLE);
±×¸®°í³ª¼ ÆÄÀÏÀ» ¿¾îº¸¸é ´ÙÀ½°ú °°ÀÌ ÇÑ ÁÙ¸¸ ÀÖ¾î¾ß ÇÑ´Ù.
This is new content.
À̹ø¿¡´Â "test.txt"¸¦ Ãß°¡ ¸ðµå·Î ¿¾î º¸ÀÚ.
open(FHANDLE, ">>test.txt") || die "Can't open test.txt!";
±×¸®°í ÇÑ ÁÙÀ» Ãß°¡ÇÑ ÈÄ ÆÄÀÏÀ» ´Ý¾Æº¸ÀÚ.
print FHANDLE "This is new content that appended.n";
close(FHANDLE);
"test.txt"¸¦ Àо¸é ³»¿ëÀÌ ´ÙÀ½°ú °°¾Æ¾ß ÇÑ´Ù.
This is new content.
This is new content that appended.
ÀÌÁ¦ ÆÄÀÏ °ü¸®¿¡ ´ëÇØ¼ ¾Ë¾Æº»´Ù. PERL¿¡¼´Â ÇÔ¼ö¸¦ ÀÌ¿ëÇÏ¿© ÆÄÀÏÀÇ À̸§ º¯°æ, ÆÄÀÏ »èÁ¦, ÆÄÀÏÀÇ Á¢±Ù ±ÇÇÑ ¼³Á¤ µîÀÇ ÀÛ¾÷À» ÇÒ ¼ö ÀÖ´Ù. ¸ÕÀú, "test.txt" ÀÇ À̸§À» "babo.txt" ·Î ¹Ù²Ù¾î º¸ÀÚ. À̶§ »ç¿ëµÇ´Â ÇÔ¼ö°¡ renameÀÌ´Ù.
rename("test.txt", "babo.txt");
rename ÇÔ¼ö´Â ÆÄÀÏÀÇ À̸§À» ¹Ù²ÙÁö¸¸ º¹»çº»À¸·Î »ý¼ºÇÏÁö´Â ¾Ê´Â´Ù.
ÀÌÁ¦´Â "babo.txt"¸¦ »èÁ¦ÇØ º¸ÀÚ. »èÁ¦´Â unlink ÇÔ¼ö·Î ÇØ°áÇÒ ¼ö ÀÖ´Ù.
unlink("babo.txt");
"babo.txt" ÆÄÀÏÀº »èÁ¦µÇ¾ú´Ù.
chmod ÇÔ¼ö´Â ÆÄÀÏÀÇ Á¢±Ù ±ÇÇÑÀ» ¼³Á¤ÇØ ÁØ´Ù. "test.txt"ÀÇ Á¢±Ù ±ÇÇÑÀ» 666(¼ÒÀ¯±ÇÀÚ, »ç¿ëÀÚ, »ç¿ëÀÚ ±×·ì ¸ðµÎ¿¡°Ô Àбâ/¾²±â ±ÇÇÑÀ» ºÎ¿©) À¸·Î ¹Ù²Ù¾î º¸ÀÚ.
chmod(0666, "test.txt");
ÆÄÀÏ ÀÔÃâ·Â¿¡ °üÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº ¹æ¸í·Ï ½ºÅ©¸³Æ® ¼³¸í½Ã ´Ù½ÃÇѹø »ó¼¼ÇÏ°Ô ¼³¸íÇϰڴÙ.
--------------------------------------------------------------------------------
|
|