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 251
114  perl -p -i -e s/abc/def/g JMJS 24.3.26 257
113  Deleting from a Hash , defined , exists JMJS 25.7.9 281
112  yaml file Àбâ JMJS 23.11.30 306
111  alzipcon JMJS 22.11.26 368
110  file2date.pl JMJS 24.6.1 483
109  UTF-8, EUC-KR JMJS 19.12.15 449
108  wget.pl LWP Simple get JMJS 19.9.17 473
107  X JMJS 19.9.17 468
106  X JMJS 19.9.17 474
105  X JMJS 19.9.17 463
104  X JMJS 19.9.17 462
103  X JMJS 19.9.17 461
102  X JMJS 19.9.17 460
101  gnome-terminal JMJS 25.7.3 466
100  jsame.pl JMJS 09.5.21 1988
99  jos.pl JMJS 08.11.29 1723
98  jmngr.pl - jmjspro manager JMJS 08.11.29 1757
97  vhdl.pm JMJS 08.11.29 1732
96  jreg.pl JMJS 08.11.29 1712
95  jtree.pm JMJS 08.11.29 1795
94  w2c.pl JMJS 08.11.29 1751
93  jdread.pl JMJS 08.11.29 1525
92  ffile.zip ffilediff.pl JMJS 09.4.24 1580
91  rgb2ycbcr.pl JMJS 10.5.12 1890
90  proview.pl JMJS 08.11.29 1965
89  smi_shift.pl JMJS 10.10.3 1557
88  srt2smi.pl srtshift.pl JMJS 18.7.14 1756
87  Perl CGI Input Test, getenv.cgi JMJS 18.11.21 1455
86  hash JMJS 24.6.22 1705
85  tr a-z A-Z ġȯ , ´ë¼Ò¹®ÀÚ º¯È¯ , ¹®ÀÚ¿­ Á¶°Ç , ... JMJS 24.6.22 1502
84  JARRAY->jfunc JMJS 08.10.2 1468
83  ¼öÄ¡ÇÔ¼ö - ... JMJS 09.5.7 1959
82  ¿ªÇà·Ä3x3 JMJS 09.5.7 1986
81  hex2int.pl JMJS 10.9.12 2715
80  stat - file status º¸±â JMJS 07.12.16 1577
79  Perl Tip JMJS 24.6.22 2738
78  SMI file sync delay JMJS 07.7.18 1680
77  rmword.pl JMJS 07.6.18 1597
76  pack unpack JMJS 24.6.22 1504
75  [Perl]read_dir.pl JMJS 07.2.22 1788
74  [Perl]jtab2char - tab¹®ÀÚ¸¦ ƯÁ¤ char·Î ¹Ù²ãÁÖ±â JMJS 07.2.22 1759
73  Perl ¼ýÀÚ Sorting JMJS 11.5.17 1842
72  [CGI]GET and POST JMJS 06.11.20 3502
71  Perl Grammer JMJS 06.9.4 3077
70  Ç¥ÁØ ¸ðµâ JMJS 06.8.10 1970
69  Getopt::Long example JMJS 06.8.10 2167
68  array of array JMJS 06.4.22 1578
67  [HTML]Å×ÀÌºí ¹è°æ¿¡ ±×¸²³Ö±â JMJS 06.3.8 1668
66  l2w.pm - line to word JMJS 08.12.1 1659
65  make_random_chars JMJS 05.8.10 1495
64  mail º¸³»´Â script JMJS 05.3.23 1467
63  ½ÇÇàÆÄÀÏÀ» ½ÇÇà½Ã۰í Ç¥ÁØ¿¡·¯ Àбâ JMJS 09.2.25 1474
62  ÆË¾÷â(°øÁöâ)¶ç¿ì±â Jinsung 03.12.16 2568
61  print <<ENDLINE JMJS 03.12.5 1567
60  [HTML]Target JMJS 03.5.21 1603
59  [Perl]jutil.pm JMJS 03.5.3 1853
58  [Perl]jdiff.pl JMJS 02.6.6 1757
57  [Perl]cfilter.pm - commant filter JMJS 02.1.31 1789
56  [HTML]ÀÚµ¿À¸·Î ´Ù¸¥ ÆäÀÌÁö À̵¿ JMJS 02.1.19 1611
55  STDIN file open glob -w warning JMJS 24.6.22 1652
54  opendir , readdir , closedir JMJS 24.6.22 1652
53  rand_diff JMJS 01.10.23 1550
52  vcd2v.pl JMJS 15.8.25 1635
51  file upload JMJS 24.6.22 1576
50  umask(070) <- chmod o-rwx Áø¼º 01.3.16 1720
49  head2index Áø¼º 01.3.15 1413
48  grep.pl JMJS 11.1.20 1552
47  chr(13) = \M Áø¼º 01.3.15 1415
46  stty JMJS 01.3.12 1527
45  des.pl JMJS 01.3.8 1494
44  chr_plus.pl JMJS 01.3.8 1503
43  get passwd in unix JMJS 19.8.18 1347
42  unsort JMJS 19.9.10 1586
41  read from website web JMJS 19.5.15 1391
40  vec JMJS 01.3.8 1649
39  chomp $_ @_ say defined use 5.010 state grep any ... JMJS 18.10.27 1568
38  [Perl Tk] µµ½ºÃ¢ ¾øÀÌ, ÆÞ Tk ½ºÅ©¸³Æ® ½ÇÇàÇϱâ; ... JMJS 17.9.30 1532
37  @bs = sort {$a <=> $b} @as; JMJS 17.7.12 1602
36  if ( -e -z -s -f -d -T -B -M ) JMJS 16.3.10 1696
35  mkmm.pl - make freemind JMJS 12.5.22 1640
34  perl -pi.orig -e "s/\bu_(\w+_t)\b/u$1/g" *.c JMJS 11.8.26 1624
33  .xls output csv ÆÄÀÏ¿¡ \n "°¡ ÀÖÀ»¶§ JMJS 11.4.13 1518
32  jdcat.pl juncat.pl JMJS 11.2.24 1668
31  print chr(ord('a')); JMJS 01.3.8 1575
30  require "/user/home/jin1/jin1.pm"; JMJS 00.11.28 1512
29  for(my $i=0; $i < @abc; $i ++) {} JMJS 00.11.15 1599
28  remove blank $abc =~ s/[\s]+//g; Á¤±ÔÇ¥Çö½Ä ... JMJS 25.7.16 1545
27  array and for JMJS 00.11.14 1385
26  È¨ÆäÀÌÁö ÀÚµ¿ À̵¿ JMJS 00.10.28 1445
25  html¿¡¼­ ¾²ÀÌ´Â ±âȣǥ½Ã¹æ¹ý JMJS 00.9.30 1399
24  ¹è¿­ÀÇ ¹üÀ§ ¿¬»êÀÚ JMJS 00.9.20 1701
23  for(1..3) { print "$_";} JMJS 09.4.24 1371
22  package JMJS 24.6.22 1453
21  ÁÙ¿¡¼­ ÇѱÛÀÚ °íÄ¡±â JMJS 00.8.7 1501
20  hotkey function by getc JMJS 00.7.21 1602
19  read, sysread, syswrite JMJS 00.7.21 2413
18  crypt JMJS 00.7.13 1707
17  csv2gan.pl JMJS 11.4.4 1719
16  hexa JMJS 24.6.18 1548
15  file in out.pl JMJS 00.7.5 1733
14  ARGV JMJS 00.7.5 1554
13  jtime.pm - localtime, timelocal JMJS 09.4.9 2082
12  @INC JMJS 00.7.5 1914
11  $#myarray JMJS 00.7.5 1671
10  Hash of Array JMJS 00.7.5 1495
9  package JARRAY JHASH JMJS 00.7.4 1741
8  foreach, while each, dos2unix.pl, next last JMJS 09.4.24 1718
7  base64 enc dec binary JMJS 25.6.30 1519
6  file lock JMJS 00.7.4 1629
5  gettime JMJS 00.7.4 1612
4  [Perl]jcdread.pl JMJS 00.7.4 1693
3  [Perl]jdread.pl JMJS 00.7.4 1590
2  Monti Hall problem JMJS 24.6.27 1582
1  DESTROY JMJS 09.7.20 1524
[1]