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 462
114  perl -p -i -e s/abc/def/g JMJS 24.3.26 415
113  Deleting from a Hash , defined , exists JMJS 25.7.9 478
112  yaml file Àбâ JMJS 23.11.30 528
111  alzipcon JMJS 22.11.26 578
110  file2date.pl JMJS 24.6.1 680
109  UTF-8, EUC-KR JMJS 19.12.15 702
108  wget.pl LWP Simple get JMJS 19.9.17 696
107  X JMJS 19.9.17 662
106  X JMJS 19.9.17 686
105  X JMJS 19.9.17 702
104  X JMJS 19.9.17 679
103  X JMJS 19.9.17 685
102  X JMJS 19.9.17 662
101  gnome-terminal JMJS 25.7.3 683
100  jsame.pl JMJS 09.5.21 2247
99  jos.pl JMJS 08.11.29 1919
98  jmngr.pl - jmjspro manager JMJS 08.11.29 1976
97  vhdl.pm JMJS 08.11.29 1878
96  jreg.pl JMJS 08.11.29 1918
95  jtree.pm JMJS 08.11.29 1919
94  w2c.pl JMJS 08.11.29 1963
93  jdread.pl JMJS 08.11.29 1711
92  ffile.zip ffilediff.pl JMJS 09.4.24 1771
91  rgb2ycbcr.pl JMJS 10.5.12 2058
90  proview.pl JMJS 08.11.29 2115
89  smi_shift.pl JMJS 10.10.3 1767
88  srt2smi.pl srtshift.pl JMJS 18.7.14 1975
87  Perl CGI Input Test, getenv.cgi JMJS 18.11.21 1623
86  hash JMJS 24.6.22 1897
85  tr a-z A-Z ġȯ , ´ë¼Ò¹®ÀÚ º¯È¯ , ¹®ÀÚ¿­ Á¶°Ç , ... JMJS 24.6.22 1613
84  JARRAY->jfunc JMJS 08.10.2 1676
83  ¼öÄ¡ÇÔ¼ö - ... JMJS 09.5.7 2142
82  ¿ªÇà·Ä3x3 JMJS 09.5.7 2262
81  hex2int.pl JMJS 10.9.12 2841
80  stat - file status º¸±â JMJS 07.12.16 1795
79  Perl Tip JMJS 24.6.22 2871
78  SMI file sync delay JMJS 07.7.18 1854
77  rmword.pl JMJS 07.6.18 1795
76  pack unpack JMJS 24.6.22 1824
75  [Perl]read_dir.pl JMJS 07.2.22 2069
74  [Perl]jtab2char - tab¹®ÀÚ¸¦ ƯÁ¤ char·Î ¹Ù²ãÁÖ±â JMJS 07.2.22 1990
73  Perl ¼ýÀÚ Sorting JMJS 11.5.17 2031
72  [CGI]GET and POST JMJS 06.11.20 3631
71  Perl Grammer JMJS 06.9.4 3221
70  Ç¥ÁØ ¸ðµâ JMJS 06.8.10 2180
69  Getopt::Long example JMJS 06.8.10 2278
68  array of array JMJS 06.4.22 1781
67  [HTML]Å×ÀÌºí ¹è°æ¿¡ ±×¸²³Ö±â JMJS 06.3.8 1868
66  l2w.pm - line to word JMJS 08.12.1 1881
65  make_random_chars JMJS 05.8.10 1695
64  mail º¸³»´Â script JMJS 05.3.23 1686
63  ½ÇÇàÆÄÀÏÀ» ½ÇÇà½Ã۰í Ç¥ÁØ¿¡·¯ Àбâ JMJS 09.2.25 1701
62  ÆË¾÷â(°øÁöâ)¶ç¿ì±â Jinsung 03.12.16 2718
61  print <<ENDLINE JMJS 03.12.5 1766
60  [HTML]Target JMJS 03.5.21 1814
59  [Perl]jutil.pm JMJS 03.5.3 1975
58  [Perl]jdiff.pl JMJS 02.6.6 1970
57  [Perl]cfilter.pm - commant filter JMJS 02.1.31 1963
56  [HTML]ÀÚµ¿À¸·Î ´Ù¸¥ ÆäÀÌÁö À̵¿ JMJS 02.1.19 1816
55  STDIN file open glob -w warning JMJS 24.6.22 1865
54  opendir , readdir , closedir JMJS 24.6.22 1834
53  rand_diff JMJS 01.10.23 1760
52  vcd2v.pl JMJS 15.8.25 1740
51  file upload JMJS 24.6.22 1762
50  umask(070) <- chmod o-rwx Áø¼º 01.3.16 1944
49  head2index Áø¼º 01.3.15 1634
48  grep.pl JMJS 11.1.20 1760
47  chr(13) = \M Áø¼º 01.3.15 1603
46  stty JMJS 01.3.12 1716
45  des.pl JMJS 01.3.8 1631
44  chr_plus.pl JMJS 01.3.8 1675
43  get passwd in unix JMJS 19.8.18 1575
42  unsort JMJS 19.9.10 1889
41  read from website web JMJS 19.5.15 1569
40  vec JMJS 01.3.8 1861
39  chomp $_ @_ say defined use 5.010 state grep any ... JMJS 18.10.27 1704
38  [Perl Tk] µµ½ºÃ¢ ¾øÀÌ, ÆÞ Tk ½ºÅ©¸³Æ® ½ÇÇàÇϱâ; ... JMJS 17.9.30 1740
37  @bs = sort {$a <=> $b} @as; JMJS 17.7.12 1794
36  if ( -e -z -s -f -d -T -B -M ) JMJS 16.3.10 1831
35  mkmm.pl - make freemind JMJS 12.5.22 1810
34  perl -pi.orig -e "s/\bu_(\w+_t)\b/u$1/g" *.c JMJS 11.8.26 1816
33  .xls output csv ÆÄÀÏ¿¡ \n "°¡ ÀÖÀ»¶§ JMJS 11.4.13 1734
32  jdcat.pl juncat.pl JMJS 11.2.24 1870
31  print chr(ord('a')); JMJS 01.3.8 1772
30  require "/user/home/jin1/jin1.pm"; JMJS 00.11.28 1693
29  for(my $i=0; $i < @abc; $i ++) {} JMJS 00.11.15 1736
28  remove blank $abc =~ s/[\s]+//g; Á¤±ÔÇ¥Çö½Ä ... JMJS 25.7.16 1698
27  array and for JMJS 00.11.14 1561
26  È¨ÆäÀÌÁö ÀÚµ¿ À̵¿ JMJS 00.10.28 1670
25  html¿¡¼­ ¾²ÀÌ´Â ±âȣǥ½Ã¹æ¹ý JMJS 00.9.30 1514
24  ¹è¿­ÀÇ ¹üÀ§ ¿¬»êÀÚ JMJS 00.9.20 1903
23  for(1..3) { print "$_";} JMJS 09.4.24 1566
22  package JMJS 24.6.22 1629
21  ÁÙ¿¡¼­ ÇѱÛÀÚ °íÄ¡±â JMJS 00.8.7 1683
20  hotkey function by getc JMJS 00.7.21 1710
19  read, sysread, syswrite JMJS 00.7.21 2645
18  crypt JMJS 00.7.13 1931
17  csv2gan.pl JMJS 11.4.4 1925
16  hexa JMJS 24.6.18 1730
15  file in out.pl JMJS 00.7.5 1901
14  ARGV JMJS 00.7.5 1773
13  jtime.pm - localtime, timelocal JMJS 09.4.9 2192
12  @INC JMJS 00.7.5 2141
11  $#myarray JMJS 00.7.5 1882
10  Hash of Array JMJS 00.7.5 1678
9  package JARRAY JHASH JMJS 00.7.4 2035
8  foreach, while each, dos2unix.pl, next last JMJS 09.4.24 1926
7  base64 enc dec binary JMJS 25.6.30 1727
6  file lock JMJS 00.7.4 1812
5  gettime JMJS 00.7.4 1942
4  [Perl]jcdread.pl JMJS 00.7.4 1900
3  [Perl]jdread.pl JMJS 00.7.4 1770
2  Monti Hall problem JMJS 24.6.27 1760
1  DESTROY JMJS 09.7.20 1754
[1]