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