⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fileaccess.mht

📁 Perl 编程技巧大全。适合初学者阅读。
💻 MHT
📖 第 1 页 / 共 5 页
字号:
<FONT color=3D#bebebe>#-----------------------------
</FONT>sysopen<FONT color=3D#00ffff>(</FONT>FH, $path, =
O_WRONLY|O_APPEND<FONT color=3D#00ffff>)</FONT>               <FONT =
color=3D#98fb98>or</FONT> <FONT color=3D#ffa500>die</FONT> $!<FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#98fb98>open</FONT><FONT =
color=3D#00ffff>(</FONT>FH, <FONT color=3D#00cd00>"+&lt; =
$path"</FONT><FONT color=3D#00ffff>)</FONT>                              =
  <FONT color=3D#98fb98>or</FONT> <FONT color=3D#ffa500>die</FONT> =
$!<FONT color=3D#00ffff>;</FONT>
sysopen<FONT color=3D#00ffff>(</FONT>FH, $path, O_RDWR<FONT =
color=3D#00ffff>)</FONT>                          <FONT =
color=3D#98fb98>or</FONT> <FONT color=3D#ffa500>die</FONT> $!<FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT>sysopen<FONT color=3D#00ffff>(</FONT>FH, $path, =
O_RDWR|O_CREAT<FONT color=3D#00ffff>)</FONT>                  <FONT =
color=3D#98fb98>or</FONT> <FONT color=3D#ffa500>die</FONT> $!<FONT =
color=3D#00ffff>;</FONT>
sysopen<FONT color=3D#00ffff>(</FONT>FH, $path, O_RDWR|O_CREAT, <FONT =
color=3D#cdcd00>0600</FONT><FONT color=3D#00ffff>)</FONT>            =
<FONT color=3D#98fb98>or</FONT> <FONT color=3D#ffa500>die</FONT> $!<FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT>sysopen<FONT color=3D#00ffff>(</FONT>FH, $path, =
O_RDWR|O_EXCL|O_CREAT<FONT color=3D#00ffff>)</FONT>           <FONT =
color=3D#98fb98>or</FONT> <FONT color=3D#ffa500>die</FONT> $!<FONT =
color=3D#00ffff>;</FONT>
sysopen<FONT color=3D#00ffff>(</FONT>FH, $path, O_RDWR|O_EXCL|O_CREAT, =
<FONT color=3D#cdcd00>0600</FONT><FONT color=3D#00ffff>)</FONT>     =
<FONT color=3D#98fb98>or</FONT> <FONT color=3D#ffa500>die</FONT> $!<FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT></PRE></FONT></TD></TR></TBODY></TABLE></DIV>
<DIV class=3DSECT2>
<H2 class=3DSECT2><A name=3DAEN365>Opening Files with Unusual =
Filenames</A></H2>
<TABLE width=3D"100%" bgColor=3D#2f4f4f border=3D0>
  <TBODY>
  <TR>
    <TD><PRE class=3DSCREEN><FONT color=3D#f5deb3 size=3D+1><FONT =
color=3D#bebebe>#-----------------------------
</FONT>$filename =3D~ <FONT color=3D#ff7f50>s</FONT><FONT =
color=3D#bebebe>#^(\s)#./$1#;
</FONT><FONT color=3D#98fb98>open</FONT><FONT =
color=3D#00ffff>(</FONT>HANDLE, <FONT color=3D#00cd00>"&lt; =
$filename\0"</FONT><FONT color=3D#00ffff>)</FONT>          <FONT =
color=3D#98fb98>or</FONT> <FONT color=3D#ffa500>die</FONT> <FONT =
color=3D#00cd00>"cannot open $filename : $!\n"</FONT><FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT>sysopen<FONT color=3D#00ffff>(</FONT>HANDLE, $filename, =
O_RDONLY<FONT color=3D#00ffff>)</FONT>   <FONT color=3D#98fb98>or</FONT> =
<FONT color=3D#ffa500>die</FONT> <FONT color=3D#00cd00>"cannot open =
$filename: $!\n"</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT>$filename =3D <FONT color=3D#ff7f50>shift</FONT> <FONT =
color=3D#cdad00>@ARGV</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#98fb98>open</FONT><FONT color=3D#00ffff>(</FONT>INPUT, =
$filename<FONT color=3D#00ffff>)</FONT>               <FONT =
color=3D#98fb98>or</FONT> <FONT color=3D#ffa500>die</FONT> <FONT =
color=3D#00cd00>"Couldn't open $filename : $!\n"</FONT><FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#98fb98>open</FONT><FONT =
color=3D#00ffff>(</FONT>OUTPUT, <FONT =
color=3D#00cd00>"&gt;$filename"</FONT><FONT color=3D#00ffff>)</FONT>
    <FONT color=3D#98fb98>or</FONT> <FONT color=3D#ffa500>die</FONT> =
<FONT color=3D#00cd00>"Couldn't open $filename for writing: =
$!\n"</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#ffa500>use</FONT> <FONT =
color=3D#b2dfee>Fcntl</FONT><FONT color=3D#00ffff>;</FONT>               =
           <FONT color=3D#bebebe># for file constants
</FONT>
sysopen<FONT color=3D#00ffff>(</FONT>OUTPUT, $filename, =
O_WRONLY|O_TRUNC<FONT color=3D#00ffff>)</FONT>
    <FONT color=3D#98fb98>or</FONT> <FONT color=3D#ffa500>die</FONT> =
<FONT color=3D#00cd00>"Can't open $filename for writing: =
$!\n"</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT>$file =3D~ <FONT color=3D#ff7f50>s</FONT><FONT =
color=3D#bebebe>#^(\s)#./$1#;
</FONT><FONT color=3D#98fb98>open</FONT><FONT =
color=3D#00ffff>(</FONT>OUTPUT, <FONT color=3D#00cd00>"&gt; =
$file\0"</FONT><FONT color=3D#00ffff>)</FONT>
        <FONT color=3D#98fb98>or</FONT> <FONT color=3D#ffa500>die</FONT> =
<FONT color=3D#00cd00>"Couldn't open $file for OUTPUT : =
$!\n"</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT></PRE></FONT></TD></TR></TBODY></TABLE></DIV>
<DIV class=3DSECT2>
<H2 class=3DSECT2><A name=3DAEN368>Expanding Tildes in =
Filenames</A></H2>
<TABLE width=3D"100%" bgColor=3D#2f4f4f border=3D0>
  <TBODY>
  <TR>
    <TD><PRE class=3DSCREEN><FONT color=3D#f5deb3 size=3D+1><FONT =
color=3D#bebebe>#-----------------------------
</FONT>$filename =3D~ <FONT color=3D#ff7f50>s</FONT><FONT =
color=3D#00ffff>{</FONT> ^ ~ <FONT color=3D#00ffff>(</FONT> <FONT =
color=3D#00ffff>[</FONT>^/<FONT color=3D#00ffff>]</FONT>* <FONT =
color=3D#00ffff>)</FONT> <FONT color=3D#00ffff>}</FONT>
              <FONT color=3D#00ffff>{</FONT> $<FONT =
color=3D#cdcd00>1</FONT>
                    ? <FONT color=3D#00ffff>(</FONT><FONT =
color=3D#98fb98>getpwnam</FONT><FONT color=3D#00ffff>(</FONT>$<FONT =
color=3D#cdcd00>1</FONT><FONT color=3D#00ffff>))[</FONT><FONT =
color=3D#cdcd00>7</FONT><FONT color=3D#00ffff>]</FONT>
                    : <FONT color=3D#00ffff>(</FONT> <FONT =
color=3D#cdcd00>$ENV</FONT><FONT color=3D#00ffff>{</FONT><FONT =
color=3D#00cd00>HOME</FONT><FONT color=3D#00ffff>}</FONT> || <FONT =
color=3D#cdcd00>$ENV</FONT><FONT color=3D#00ffff>{</FONT><FONT =
color=3D#00cd00>LOGDIR</FONT><FONT color=3D#00ffff>}</FONT>
                         || <FONT color=3D#00ffff>(</FONT><FONT =
color=3D#98fb98>getpwuid</FONT><FONT color=3D#00ffff>(</FONT>$&gt;<FONT =
color=3D#00ffff>))[</FONT><FONT color=3D#cdcd00>7</FONT><FONT =
color=3D#00ffff>]</FONT>
                       <FONT color=3D#00ffff>)</FONT>
<FONT color=3D#00ffff>}</FONT>ex<FONT color=3D#00ffff>;</FONT>
<FONT color=3D#bebebe>#-----------------------------
#    ~user
#    ~user/blah
#    ~
#    ~/blah
#-----------------------------
</FONT></PRE></FONT></TD></TR></TBODY></TABLE></DIV>
<DIV class=3DSECT2>
<H2 class=3DSECT2><A name=3DAEN371>Making Perl Report Filenames in =
Errors</A></H2>
<TABLE width=3D"100%" bgColor=3D#2f4f4f border=3D0>
  <TBODY>
  <TR>
    <TD><PRE class=3DSCREEN><FONT color=3D#f5deb3 size=3D+1><FONT =
color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#98fb98>open</FONT><FONT =
color=3D#00ffff>(</FONT>$path, <FONT color=3D#00cd00>"&lt; =
$path"</FONT><FONT color=3D#00ffff>)</FONT>
    <FONT color=3D#98fb98>or</FONT> <FONT color=3D#ffa500>die</FONT> =
<FONT color=3D#00cd00>"Couldn't open $path for reading : =
$!\n"</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#bebebe>#-----------------------------
#Argument "3\n" isn't numeric in multiply at tallyweb line 16, =
&lt;LOG&gt; chunk 17.
#-----------------------------
#Argument "3\n" isn't numeric in multiply at tallyweb
#
#    line 16, &lt;/usr/local/data/mylog3.dat&gt; chunk 17.
#-----------------------------
</FONT></PRE></FONT></TD></TR></TBODY></TABLE></DIV>
<DIV class=3DSECT2>
<H2 class=3DSECT2><A name=3DAEN374>Creating Temporary Files</A></H2>
<TABLE width=3D"100%" bgColor=3D#2f4f4f border=3D0>
  <TBODY>
  <TR>
    <TD><PRE class=3DSCREEN><FONT color=3D#f5deb3 size=3D+1><FONT =
color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#ffa500>use</FONT> <FONT =
color=3D#b2dfee>IO::File</FONT><FONT color=3D#00ffff>;</FONT>

$fh =3D IO::File-&gt;new_tmpfile
        <FONT color=3D#98fb98>or</FONT> <FONT color=3D#ffa500>die</FONT> =
<FONT color=3D#00cd00>"Unable to make new temporary file: =
$!"</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#ffa500>use</FONT> <FONT =
color=3D#b2dfee>IO::File</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>use</FONT> <FONT color=3D#b2dfee>POSIX</FONT> =
<FONT color=3D#ff7f50>qw</FONT><FONT color=3D#00ffff>(</FONT>tmpnam<FONT =
color=3D#00ffff>);</FONT>

<FONT color=3D#bebebe># try new temporary filenames until we get one =
that didn't already exist
</FONT><FONT color=3D#ffa500>do</FONT> <FONT color=3D#00ffff>{</FONT> =
$name =3D tmpnam<FONT color=3D#00ffff>()</FONT> <FONT =
color=3D#00ffff>}</FONT>
    <FONT color=3D#ffa500>until</FONT> $fh =3D IO::File-&gt;new<FONT =
color=3D#00ffff>(</FONT>$name, O_RDWR|O_CREAT|O_EXCL<FONT =
color=3D#00ffff>);</FONT>

<FONT color=3D#bebebe># install atexit-style handler so that when we =
exit or die,
# we automatically delete this temporary file
</FONT><FONT color=3D#ffa500>END</FONT> <FONT color=3D#00ffff>{</FONT> =
<FONT color=3D#98fb98>unlink</FONT><FONT =
color=3D#00ffff>(</FONT>$name<FONT color=3D#00ffff>)</FONT> <FONT =
color=3D#98fb98>or</FONT> <FONT color=3D#ffa500>die</FONT> <FONT =
color=3D#00cd00>"Couldn't unlink $name : $!"</FONT> <FONT =
color=3D#00ffff>}</FONT>

<FONT color=3D#bebebe># now go on to use the file ...
#-----------------------------
</FONT><FONT color=3D#ffa500>for</FONT> <FONT =
color=3D#00ffff>(;;)</FONT> <FONT color=3D#00ffff>{</FONT>
    $name =3D tmpnam<FONT color=3D#00ffff>();</FONT>
    sysopen<FONT color=3D#00ffff>(</FONT>TMP, $tmpnam, O_RDWR | O_CREAT =
| O_EXCL<FONT color=3D#00ffff>)</FONT> &amp;&amp; <FONT =
color=3D#ffa500>last</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#00ffff>}</FONT>
<FONT color=3D#98fb98>unlink</FONT> $tmpnam<FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#ffa500>use</FONT> <FONT =
color=3D#b2dfee>IO::File</FONT><FONT color=3D#00ffff>;</FONT>

$fh =3D IO::File-&gt;new_tmpfile             <FONT =
color=3D#98fb98>or</FONT> <FONT color=3D#ffa500>die</FONT> <FONT =
color=3D#00cd00>"IO::File-&gt;new_tmpfile: $!"</FONT><FONT =
color=3D#00ffff>;</FONT>
$fh-&gt;autoflush<FONT color=3D#00ffff>(</FONT><FONT =
color=3D#cdcd00>1</FONT><FONT color=3D#00ffff>);</FONT>
<FONT color=3D#ff7f50>print</FONT> $fh <FONT =
color=3D#00cd00>"$i\n"</FONT> <FONT color=3D#ffa500>while</FONT> $i++ =
&lt; <FONT color=3D#cdcd00>10</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#98fb98>seek</FONT><FONT color=3D#00ffff>(</FONT>$fh, =
<FONT color=3D#cdcd00>0</FONT>, <FONT color=3D#cdcd00>0</FONT><FONT =
color=3D#00ffff>)</FONT>                         <FONT =
color=3D#98fb98>or</FONT> <FONT color=3D#ffa500>die</FONT> <FONT =
color=3D#00cd00>"seek: $!"</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ff7f50>print</FONT> <FONT color=3D#00cd00>"Tmp file has: =
"</FONT>, &lt;$fh&gt;<FONT color=3D#00ffff>;</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT></PRE></FONT></TD></TR></TBODY></TABLE></DIV>
<DIV class=3DSECT2>
<H2 class=3DSECT2><A name=3DAEN377>Storing Files Inside Your Program =
Text</A></H2>
<TABLE width=3D"100%" bgColor=3D#2f4f4f border=3D0>
  <TBODY>
  <TR>
    <TD><PRE class=3DSCREEN><FONT color=3D#f5deb3 size=3D+1><FONT =
color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#ffa500>while</FONT> <FONT =
color=3D#00ffff>(</FONT>&lt;DATA&gt;<FONT color=3D#00ffff>)</FONT> <FONT =
color=3D#00ffff>{</FONT>
    <FONT color=3D#bebebe># process the line
</FONT><FONT color=3D#00ffff>}</FONT>
<FONT color=3D#bebebe>#__DATA__
# your data goes here
#-----------------------------
</FONT><FONT color=3D#ffa500>while</FONT> <FONT =
color=3D#00ffff>(</FONT>&lt;main::DATA&gt;<FONT color=3D#00ffff>)</FONT> =
<FONT color=3D#00ffff>{</FONT>
    <FONT color=3D#bebebe># process the line
</FONT><FONT color=3D#00ffff>}</FONT>
<FONT color=3D#bebebe>#__END__
# your data goes here
#-----------------------------
</FONT><FONT color=3D#ffa500>use</FONT> <FONT =
color=3D#b2dfee>POSIX</FONT> <FONT color=3D#ff7f50>qw</FONT><FONT =
color=3D#00ffff>(</FONT>strftime<FONT color=3D#00ffff>);</FONT>

$raw_<FONT color=3D#98fb98>time</FONT> =3D <FONT =
color=3D#00ffff>(</FONT><FONT color=3D#98fb98>stat</FONT><FONT =
color=3D#00ffff>(</FONT>DATA<FONT color=3D#00ffff>))[</FONT><FONT =
color=3D#cdcd00>9</FONT><FONT color=3D#00ffff>];</FONT>
$size     =3D <FONT color=3D#b2dfee>-</FONT><FONT =

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -