LogIn E-mail
¼³°èÀ̾߱â
if ( -e -z -s -f -d -T -B -M )
# 36 JMJS    16.3.10 20:46

 ÆÄÀÏ ´Ù·ç±â

°æ¿ì¿¡ µû¶ó ¿©·¯ºÐÀº ÆÄÀϰú µð·ºÅ丮¸¦ ´Ù·ç¾î¾ß ÇÒ ¶§°¡ ÀÖÀ¸¸®¶ó »ý°¢µË´Ï´Ù.

PERLÀÇ ÆÄÀÏ ´Ù·ç´Â ¼Ø¾¾´Â ¸Å¿ì ÈǸ¢ÇÕ´Ï´Ù. ÆÄÀÏÀÇ »óÅ ¶Ç´Â À̰ÍÀÌ ÆÄÀÏÀÎÁö µð·ºÅ丮ÀÎÁö ¾Ë¾Æ³»±â À§Çؼ­ C¿Í °°Àº ¾ð¾î¿¡¼­´Â ´ë°³ int86x, fstat °°Àº ½Ã½ºÅÛ ÀÇÁ¸ÀûÀÎ ÇÔ¼ö¸¦ ÀÌ¿ëÇØ¾ß ÇÕ´Ï´Ù. ±×·¯³ª PERL¿¡¼­´Â ¾î¶² ¿î¿µÃ¼Á¦¿¡¼­µµ °°Àº ¸í·ÉÀ» »ç¿ëÇÕ´Ï´Ù. ´ÜÁö ÂüÁ¶ ¸Å´º¾óÀÌ ¿·¿¡ ÀÖ¾î¾ß ÇÑ´Ù´Â °Í »ÓÀÌÁÒ.

ÆÄÀÏ ¹× µð·ºÅ丮¿¡ ´ëÇØ ¾Ë°í ½ÍÀº °æ¿ì ´ÙÀ½°ú °°Àº ÇÔ¼öµéÀ» »ç¿ëÇÕ´Ï´Ù. ±âº»ÀûÀÎ °Íµé¸¸ ³ª¿­ÇÕ´Ï´Ù.(perlfall.htmÀÇ -X FILEHANDLEÀ» º¸½Ê½Ã¿À.)

¹®¹ý: -X FILEHANDLE ¶Ç´Â -X FILE_OR_DIR_NAME

-e  ÆÄÀÏÀÌ Á¸ÀçÇϴ°¡ ? (ÂüÀ̸é 1, °ÅÁþÀ̸é 0À» ¸®ÅÏÇÕ´Ï´Ù.)
-z  ÆÄÀÏ Å©±â°¡ 0Àΰ¡ ?
-s  ÆÄÀÏÀÌ 0 ¾Æ´Ñ Å©±â¸¦ °®´Â°¡ ? (ÆÄÀÏÀÇ Å©±â¸¦ ¸®ÅÏÇÕ´Ï´Ù.)
-f  ÆÄÀÏÀÌ Æò¹üÇÑ ÆÄÀÏÀΰ¡ ?
-d  ÆÄÀÏÀ̸§ÀÌ µð·ºÅ丮Àΰ¡ ?
-T  ÆÄÀÏÀÌ ÅØ½ºÆ® ÆÄÀÏÀΰ¡ ?
-B  ÆÄÀÏÀÌ ÀÌÁø ÆÄÀÏÀΰ¡ ?
-M  ÆÄÀÏÀÌ »ý¼ºµÈÁö ¸îÀÏÀÌ µÇ¾ú´Â°¡ ? ( 0ºÎÅÍ ½ÃÀÛ )

±×·³ ÆÄÀÏÀ» ÇÑ ¹ø ÀÐ¾î º¾½Ã´Ù. ÆÄÀÏÀ» Àаųª ¾²±â Àü¿¡´Â ¹Ýµå½Ã ÆÄÀÏ ÇÚµéÀ» »ý¼º, ÆÄÀÏÀ» '¿­¾î¾ß' Çϰí, ´Ù ÀÐÀº ÈÄ¿¡´Â '´Ý¾Æ¾ß' ÇÕ´Ï´Ù. ÆÄÀÏ Çڵ鿡´Â º¯¼öµé¿¡ ºÙ´Â $, @, %°°Àº °ÍµéÀÌ ºÙÁö ¾Ê½À´Ï´Ù.

    # mytype1.pl
    # µµ½ºÀÇ type, À¯´Ð½ºÀÇ cat ¸í·ÉÀ» Èä³»³»¾î º¾½Ã´Ù.

    $fileName = "hello.pl";

    if( -d $fileName )  #  -d $fileName && die "$fileName ...";¿Í °°À½.
      { die "$fileName is a directory.\n"; }
      # µð·ºÅ丮¸¦ typeÇÒ ¼ö´Â ¾øÁÒ.
      # die ÇÔ¼ö´Â ¸Þ¼¼Áö¸¦ Ãâ·ÂÇϰí ÇÁ·Î±×·¥ ½ÇÇàÀ» ÁߴܽÃŵ´Ï´Ù.

    -e $fileName || die "$fileName is not exist.\n";

    -T $fileName || die "$fileName is not a text file.\n";

    open( fileHandle, $fileName ) || die "Cannot open $fileName.\n";
    @allLines = <fileHandle>;   # ÇÚµéÀ» ÅëÇÏ¿© ¸ðµç ¹®ÀÚ¿­À» ¹è¿­·Î ÀÐ¾î µéÀÔ´Ï´Ù. ÆÄÀÏÀÌ ³Ê¹« Å©¸é Á» ¹®Á¦°¡ ÀÖ°ÚÁÒ.

    close( fileHandle ); # ´Ù ÀоúÀ¸´Ï ²À ´Ý½À´Ï´Ù. !!!!!

     print @allLines; # È­¸é¿¡ Ãâ·ÂÇÕ´Ï´Ù.

¾ÆÁÖ °£´ÜÇÏ°Ô ¸¸µé¾úÁÒ ? ¹®ÀÚ¿­À» ÇÑ ÁÙ¾¿ ÀÐÀ» ¼öµµ ÀÖ½À´Ï´Ù. ÇÚµéÀ» ¹è¿­¿¡ ÇÒ´ç(=)½ÃŰ¸é ¸ðµç ¹®ÀÚ¿­ÀÌ ´Ù ÀÐÈ÷Áö¸¸ ÀÏ¹Ý º¯¼ö(scalar)¿¡ ÇÒ´ç½Ã۸é ÇÑ ÁÙ¸¸À» Àаí, ÆÄÀÏÀÇ ³¡¿¡ µµ´ÞÇßÀ» ¶§¿¡´Â "undefined value"(Á¤ÇØÁöÁö ¾ÊÀº °ª ?)À» ¸®ÅÏ ÇÕ´Ï´Ù. ÀÌ undefined value´Â Á¶°Ç½Ä¿¡¼­ »ç¿ëÇÏ¸é °ÅÁþÀ¸·Î Àνĵ˴ϴÙ. µû¶ó¼­,

    open( fileHandle, $fileName ) || die "Cannot open $fileName.\n";
    while( $aLine =  )
    {
      print $aLine;
    }
    close( fileHandle );  # ´Ù ÀоúÀ¸´Ï ²À ´Ý½À´Ï´Ù. !!!!!

¿Í °°ÀÌ ÇÏ¸é ¾ÈÀüÇÏ°Ô ÆÄÀÏÀÇ ³¡±îÁö ÇÑ ÁÙ¾¿ ÀÐÀ¸¸é¼­ printÇÒ ¼ö ÀÖ´Â °ÍÀÌÁö¿ä. ÆÄÀÏÀÇ Å©±â°¡ ³Ê¹« Ä¿¼­ ¸Þ¸ð¸® »ç¿ëÀÌ °ú´ÙÇÒ °Í °°Àº °æ¿ì¿¡´Â ÀÌ·¸°Ô ÇÑ ÁÙ¾¿ ÀоîµéÀ̴°͵µ ÁÁÀº ¹æ¹ýÀ̰ÚÁö¿ä.

openÀº ÆÄÀÏÀ» ¿­°í close´Â ´Ý´Â ÇÔ¼öÀε¥, openÀÇ ¿©´Â µ¿ÀÛÀº ´Ù½Ã ºÐ·ùÇÏ¿© »ý°¢ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.

    open( fileHandle, "<hello.pl" );  # hello.plÀ» Àб⠸ðµå·Î ¿±´Ï´Ù.
    open( fileHandle, "hello.pl" );   # hello.plÀ» Àб⠸ðµå·Î ¿±´Ï´Ù.
    open( fileHandle, ">hello.pl" );  # hello.plÀ» ¾²±â ¸ðµå·Î ¿±´Ï´Ù.
    open( fileHandle, ">>hello.pl" ); # hello.plÀÇ ³¡¿¡¼­ºÎÅÍ Ãß°¡ÇÏ¿©
                                      # ¾²±â ¸ðµå·Î ¿±´Ï´Ù.
    open( fileHandle, "+<hello.pl" ); # Àбâ¿Í ¾²±â ¸ðµå·Î ¿±´Ï´Ù.

±×·³ ÆÄÀÏ¿¡ ¾²±âµµ ÇØ º¾½Ã´Ù.
¾²±â¶ó°í °Ì¸ÔÀ» Çʿ䰡 ¾ø½À´Ï´Ù. ¸ðµç °ÍÀ» ³í¸®ÀûÀ¸·Î, Á¤È®È÷ ÇØÁÖ¸é »ç°í´Â ¾øÀ¸´Ï±î¿ä. ±×·¯³ª È®½ÇÈ÷ ÀÌÇØÇÏÁö ¸øÇÑ °æ¿ì¿¡´Â ¶Ç »ï°¡ ÇØ¾ß ÇÒ °ÍÀÌ ÆÄÀÏ ¾²±âÀÔ´Ï´Ù.
ÆÄÀÏ¿¡ ¾²±â¸¦ ÇÒ ¶§µµ ±×Àú printÇÔ¼ö¸¦ »ç¿ëÇÏ¸é µË´Ï´Ù. ´ÜÁö ÆÄÀÏ ÇÚµéÀ» ¸í½ÃÇØÁÖ´Â °ÍÀ¸·Î Á·ÇÕ´Ï´Ù. »ç½Ç ÆÄÀÏ ÇÚµéÀÌ ¸í½ÃµÇÁö ¾ÊÀ» °æ¿ì¿¡´Â consolÀÎ STDOUTÀ̶ó´Â Çڵ鿡 print°¡ µÇ´Â °ÍÀÌÁö¿ä.

    # write.pl
    # perltest.htmÀ̶ó´Â ÆÄÀÏÀÌ ¾ø´Ù°í °¡Á¤Çϰí ÇÁ·Î±×·¥À» ÇÕ´Ï´Ù.
    # ÀÖ´Â °æ¿ì¿¡´Â µ¤¾î¾¹´Ï´Ù.

    open( fileHandle, ">perltest.html" ) || die "Failed opening.\n";
    print fileHandle <<END_HTML;  # ´Ù¸¦ ¹Ù°¡ ¾øÁö¿ä ?
    <html><head><title>test of writing</title></head>
    <body>
    <h1>Test of writing file in PERL</h1>
    Hello. I am writing something to a file.<P>
    Be careful to close the file after completion of writing.<P>
    </body>
    </html>
    END_HTML

    close( fileHandle );

À§¿¡¼­ print ´ÙÀ½ÀÇ fileHandle´ÙÀ½¿¡ comma°¡ ¾øÀ½À» À¯ÀÇÇØ ÁÖ¼¼¿ä.

°Ô½Ã¹°: 115 °Ç, ÇöÀç: 1 / 1 ÂÊ
¹øÈ£ Á¦       ¸ñ ÀÛ¼ºÀÚ µî·ÏÀÏ ¹æ¹®
115  perl format JMJS 24.6.22 535
114  perl -p -i -e s/abc/def/g JMJS 24.3.26 436
113  Deleting from a Hash , defined , exists JMJS 25.7.9 531
112  yaml file Àбâ JMJS 23.11.30 599
111  alzipcon JMJS 22.11.26 639
110  file2date.pl JMJS 24.6.1 741
109  UTF-8, EUC-KR JMJS 19.12.15 763
108  wget.pl LWP Simple get JMJS 19.9.17 778
107  X JMJS 19.9.17 741
106  X JMJS 19.9.17 754
105  X JMJS 19.9.17 770
104  X JMJS 19.9.17 758
103  X JMJS 19.9.17 760
102  X JMJS 19.9.17 737
101  gnome-terminal JMJS 25.7.3 754
100  jsame.pl JMJS 09.5.21 2366
99  jos.pl JMJS 08.11.29 1992
98  jmngr.pl - jmjspro manager JMJS 08.11.29 2048
97  vhdl.pm JMJS 08.11.29 1910
96  jreg.pl JMJS 08.11.29 1992
95  jtree.pm JMJS 08.11.29 1942
94  w2c.pl JMJS 08.11.29 2031
93  jdread.pl JMJS 08.11.29 1792
92  ffile.zip ffilediff.pl JMJS 09.4.24 1824
91  rgb2ycbcr.pl JMJS 10.5.12 2106
90  proview.pl JMJS 08.11.29 2155
89  smi_shift.pl JMJS 10.10.3 1829
88  srt2smi.pl srtshift.pl JMJS 18.7.14 2031
87  Perl CGI Input Test, getenv.cgi JMJS 18.11.21 1662
86  hash JMJS 24.6.22 1958
85  tr a-z A-Z ġȯ , ´ë¼Ò¹®ÀÚ º¯È¯ , ¹®ÀÚ¿­ Á¶°Ç , ... JMJS 24.6.22 1631
84  JARRAY->jfunc JMJS 08.10.2 1730
83  ¼öÄ¡ÇÔ¼ö - ... JMJS 09.5.7 2182
82  ¿ªÇà·Ä3x3 JMJS 09.5.7 2381
81  hex2int.pl JMJS 10.9.12 2859
80  stat - file status º¸±â JMJS 07.12.16 1865
79  Perl Tip JMJS 24.6.22 2897
78  SMI file sync delay JMJS 07.7.18 1925
77  rmword.pl JMJS 07.6.18 1875
76  pack unpack JMJS 24.6.22 1938
75  [Perl]read_dir.pl JMJS 07.2.22 2176
74  [Perl]jtab2char - tab¹®ÀÚ¸¦ ƯÁ¤ char·Î ¹Ù²ãÁÖ±â JMJS 07.2.22 2060
73  Perl ¼ýÀÚ Sorting JMJS 11.5.17 2084
72  [CGI]GET and POST JMJS 06.11.20 3661
71  Perl Grammer JMJS 06.9.4 3256
70  Ç¥ÁØ ¸ðµâ JMJS 06.8.10 2236
69  Getopt::Long example JMJS 06.8.10 2292
68  array of array JMJS 06.4.22 1845
67  [HTML]Å×ÀÌºí ¹è°æ¿¡ ±×¸²³Ö±â JMJS 06.3.8 1950
66  l2w.pm - line to word JMJS 08.12.1 1966
65  make_random_chars JMJS 05.8.10 1732
64  mail º¸³»´Â script JMJS 05.3.23 1742
63  ½ÇÇàÆÄÀÏÀ» ½ÇÇà½Ã۰í Ç¥ÁØ¿¡·¯ Àбâ JMJS 09.2.25 1768
62  ÆË¾÷â(°øÁöâ)¶ç¿ì±â Jinsung 03.12.16 2757
61  print <<ENDLINE JMJS 03.12.5 1781
60  [HTML]Target JMJS 03.5.21 1896
59  [Perl]jutil.pm JMJS 03.5.3 2002
58  [Perl]jdiff.pl JMJS 02.6.6 2034
57  [Perl]cfilter.pm - commant filter JMJS 02.1.31 2012
56  [HTML]ÀÚµ¿À¸·Î ´Ù¸¥ ÆäÀÌÁö À̵¿ JMJS 02.1.19 1883
55  STDIN file open glob -w warning JMJS 24.6.22 1952
54  opendir , readdir , closedir JMJS 24.6.22 1893
53  rand_diff JMJS 01.10.23 1837
52  vcd2v.pl JMJS 15.8.25 1758
51  file upload JMJS 24.6.22 1838
50  umask(070) <- chmod o-rwx Áø¼º 01.3.16 2020
49  head2index Áø¼º 01.3.15 1685
48  grep.pl JMJS 11.1.20 1823
47  chr(13) = \M Áø¼º 01.3.15 1679
46  stty JMJS 01.3.12 1797
45  des.pl JMJS 01.3.8 1646
44  chr_plus.pl JMJS 01.3.8 1748
43  get passwd in unix JMJS 19.8.18 1648
42  unsort JMJS 19.9.10 2030
41  read from website web JMJS 19.5.15 1591
40  vec JMJS 01.3.8 1928
39  chomp $_ @_ say defined use 5.010 state grep any ... JMJS 18.10.27 1732
38  [Perl Tk] µµ½ºÃ¢ ¾øÀÌ, ÆÞ Tk ½ºÅ©¸³Æ® ½ÇÇàÇϱâ; ... JMJS 17.9.30 1790
37  @bs = sort {$a <=> $b} @as; JMJS 17.7.12 1855
36  if ( -e -z -s -f -d -T -B -M ) JMJS 16.3.10 1879
35  mkmm.pl - make freemind JMJS 12.5.22 1863
34  perl -pi.orig -e "s/\bu_(\w+_t)\b/u$1/g" *.c JMJS 11.8.26 1875
33  .xls output csv ÆÄÀÏ¿¡ \n "°¡ ÀÖÀ»¶§ JMJS 11.4.13 1809
32  jdcat.pl juncat.pl JMJS 11.2.24 1935
31  print chr(ord('a')); JMJS 01.3.8 1834
30  require "/user/home/jin1/jin1.pm"; JMJS 00.11.28 1768
29  for(my $i=0; $i < @abc; $i ++) {} JMJS 00.11.15 1751
28  remove blank $abc =~ s/[\s]+//g; Á¤±ÔÇ¥Çö½Ä ... JMJS 25.7.16 1732
27  array and for JMJS 00.11.14 1626
26  È¨ÆäÀÌÁö ÀÚµ¿ À̵¿ JMJS 00.10.28 1717
25  html¿¡¼­ ¾²ÀÌ´Â ±âȣǥ½Ã¹æ¹ý JMJS 00.9.30 1528
24  ¹è¿­ÀÇ ¹üÀ§ ¿¬»êÀÚ JMJS 00.9.20 1970
23  for(1..3) { print "$_";} JMJS 09.4.24 1622
22  package JMJS 24.6.22 1687
21  ÁÙ¿¡¼­ ÇѱÛÀÚ °íÄ¡±â JMJS 00.8.7 1718
20  hotkey function by getc JMJS 00.7.21 1725
19  read, sysread, syswrite JMJS 00.7.21 2707
18  crypt JMJS 00.7.13 1991
17  csv2gan.pl JMJS 11.4.4 1990
16  hexa JMJS 24.6.18 1784
15  file in out.pl JMJS 00.7.5 1928
14  ARGV JMJS 00.7.5 1839
13  jtime.pm - localtime, timelocal JMJS 09.4.9 2210
12  @INC JMJS 00.7.5 2200
11  $#myarray JMJS 00.7.5 1966
10  Hash of Array JMJS 00.7.5 1751
9  package JARRAY JHASH JMJS 00.7.4 2103
8  foreach, while each, dos2unix.pl, next last JMJS 09.4.24 1986
7  base64 enc dec binary JMJS 25.6.30 1797
6  file lock JMJS 00.7.4 1893
5  gettime JMJS 00.7.4 2071
4  [Perl]jcdread.pl JMJS 00.7.4 1971
3  [Perl]jdread.pl JMJS 00.7.4 1832
2  Monti Hall problem JMJS 24.6.27 1835
1  DESTROY JMJS 09.7.20 1837
[1]