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 541
114  perl -p -i -e s/abc/def/g JMJS 24.3.26 437
113  Deleting from a Hash , defined , exists JMJS 25.7.9 541
112  yaml file Àбâ JMJS 23.11.30 605
111  alzipcon JMJS 22.11.26 650
110  file2date.pl JMJS 24.6.1 748
109  UTF-8, EUC-KR JMJS 19.12.15 771
108  wget.pl LWP Simple get JMJS 19.9.17 790
107  X JMJS 19.9.17 753
106  X JMJS 19.9.17 765
105  X JMJS 19.9.17 777
104  X JMJS 19.9.17 768
103  X JMJS 19.9.17 772
102  X JMJS 19.9.17 745
101  gnome-terminal JMJS 25.7.3 764
100  jsame.pl JMJS 09.5.21 2381
99  jos.pl JMJS 08.11.29 2004
98  jmngr.pl - jmjspro manager JMJS 08.11.29 2059
97  vhdl.pm JMJS 08.11.29 1911
96  jreg.pl JMJS 08.11.29 2003
95  jtree.pm JMJS 08.11.29 1945
94  w2c.pl JMJS 08.11.29 2041
93  jdread.pl JMJS 08.11.29 1803
92  ffile.zip ffilediff.pl JMJS 09.4.24 1831
91  rgb2ycbcr.pl JMJS 10.5.12 2110
90  proview.pl JMJS 08.11.29 2157
89  smi_shift.pl JMJS 10.10.3 1841
88  srt2smi.pl srtshift.pl JMJS 18.7.14 2038
87  Perl CGI Input Test, getenv.cgi JMJS 18.11.21 1664
86  hash JMJS 24.6.22 1961
85  tr a-z A-Z ġȯ , ´ë¼Ò¹®ÀÚ º¯È¯ , ¹®ÀÚ¿­ Á¶°Ç , ... JMJS 24.6.22 1631
84  JARRAY->jfunc JMJS 08.10.2 1739
83  ¼öÄ¡ÇÔ¼ö - ... JMJS 09.5.7 2189
82  ¿ªÇà·Ä3x3 JMJS 09.5.7 2391
81  hex2int.pl JMJS 10.9.12 2860
80  stat - file status º¸±â JMJS 07.12.16 1870
79  Perl Tip JMJS 24.6.22 2900
78  SMI file sync delay JMJS 07.7.18 1934
77  rmword.pl JMJS 07.6.18 1878
76  pack unpack JMJS 24.6.22 1956
75  [Perl]read_dir.pl JMJS 07.2.22 2185
74  [Perl]jtab2char - tab¹®ÀÚ¸¦ ƯÁ¤ char·Î ¹Ù²ãÁÖ±â JMJS 07.2.22 2068
73  Perl ¼ýÀÚ Sorting JMJS 11.5.17 2084
72  [CGI]GET and POST JMJS 06.11.20 3663
71  Perl Grammer JMJS 06.9.4 3257
70  Ç¥ÁØ ¸ðµâ JMJS 06.8.10 2240
69  Getopt::Long example JMJS 06.8.10 2293
68  array of array JMJS 06.4.22 1852
67  [HTML]Å×ÀÌºí ¹è°æ¿¡ ±×¸²³Ö±â JMJS 06.3.8 1954
66  l2w.pm - line to word JMJS 08.12.1 1981
65  make_random_chars JMJS 05.8.10 1739
64  mail º¸³»´Â script JMJS 05.3.23 1751
63  ½ÇÇàÆÄÀÏÀ» ½ÇÇà½Ã۰í Ç¥ÁØ¿¡·¯ Àбâ JMJS 09.2.25 1780
62  ÆË¾÷â(°øÁöâ)¶ç¿ì±â Jinsung 03.12.16 2758
61  print <<ENDLINE JMJS 03.12.5 1781
60  [HTML]Target JMJS 03.5.21 1905
59  [Perl]jutil.pm JMJS 03.5.3 2004
58  [Perl]jdiff.pl JMJS 02.6.6 2042
57  [Perl]cfilter.pm - commant filter JMJS 02.1.31 2019
56  [HTML]ÀÚµ¿À¸·Î ´Ù¸¥ ÆäÀÌÁö À̵¿ JMJS 02.1.19 1892
55  STDIN file open glob -w warning JMJS 24.6.22 1964
54  opendir , readdir , closedir JMJS 24.6.22 1904
53  rand_diff JMJS 01.10.23 1848
52  vcd2v.pl JMJS 15.8.25 1759
51  file upload JMJS 24.6.22 1849
50  umask(070) <- chmod o-rwx Áø¼º 01.3.16 2026
49  head2index Áø¼º 01.3.15 1692
48  grep.pl JMJS 11.1.20 1829
47  chr(13) = \M Áø¼º 01.3.15 1693
46  stty JMJS 01.3.12 1799
45  des.pl JMJS 01.3.8 1647
44  chr_plus.pl JMJS 01.3.8 1755
43  get passwd in unix JMJS 19.8.18 1661
42  unsort JMJS 19.9.10 2043
41  read from website web JMJS 19.5.15 1594
40  vec JMJS 01.3.8 1932
39  chomp $_ @_ say defined use 5.010 state grep any ... JMJS 18.10.27 1735
38  [Perl Tk] µµ½ºÃ¢ ¾øÀÌ, ÆÞ Tk ½ºÅ©¸³Æ® ½ÇÇàÇϱâ; ... JMJS 17.9.30 1795
37  @bs = sort {$a <=> $b} @as; JMJS 17.7.12 1866
36  if ( -e -z -s -f -d -T -B -M ) JMJS 16.3.10 1884
35  mkmm.pl - make freemind JMJS 12.5.22 1867
34  perl -pi.orig -e "s/\bu_(\w+_t)\b/u$1/g" *.c JMJS 11.8.26 1882
33  .xls output csv ÆÄÀÏ¿¡ \n "°¡ ÀÖÀ»¶§ JMJS 11.4.13 1818
32  jdcat.pl juncat.pl JMJS 11.2.24 1943
31  print chr(ord('a')); JMJS 01.3.8 1838
30  require "/user/home/jin1/jin1.pm"; JMJS 00.11.28 1774
29  for(my $i=0; $i < @abc; $i ++) {} JMJS 00.11.15 1753
28  remove blank $abc =~ s/[\s]+//g; Á¤±ÔÇ¥Çö½Ä ... JMJS 25.7.16 1737
27  array and for JMJS 00.11.14 1633
26  È¨ÆäÀÌÁö ÀÚµ¿ À̵¿ JMJS 00.10.28 1727
25  html¿¡¼­ ¾²ÀÌ´Â ±âȣǥ½Ã¹æ¹ý JMJS 00.9.30 1530
24  ¹è¿­ÀÇ ¹üÀ§ ¿¬»êÀÚ JMJS 00.9.20 1978
23  for(1..3) { print "$_";} JMJS 09.4.24 1630
22  package JMJS 24.6.22 1695
21  ÁÙ¿¡¼­ ÇѱÛÀÚ °íÄ¡±â JMJS 00.8.7 1723
20  hotkey function by getc JMJS 00.7.21 1726
19  read, sysread, syswrite JMJS 00.7.21 2715
18  crypt JMJS 00.7.13 2001
17  csv2gan.pl JMJS 11.4.4 2003
16  hexa JMJS 24.6.18 1796
15  file in out.pl JMJS 00.7.5 1937
14  ARGV JMJS 00.7.5 1846
13  jtime.pm - localtime, timelocal JMJS 09.4.9 2211
12  @INC JMJS 00.7.5 2210
11  $#myarray JMJS 00.7.5 1978
10  Hash of Array JMJS 00.7.5 1761
9  package JARRAY JHASH JMJS 00.7.4 2120
8  foreach, while each, dos2unix.pl, next last JMJS 09.4.24 1996
7  base64 enc dec binary JMJS 25.6.30 1806
6  file lock JMJS 00.7.4 1901
5  gettime JMJS 00.7.4 2088
4  [Perl]jcdread.pl JMJS 00.7.4 1981
3  [Perl]jdread.pl JMJS 00.7.4 1841
2  Monti Hall problem JMJS 24.6.27 1841
1  DESTROY JMJS 09.7.20 1847
[1]