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

📄 filecontents.mht

📁 Perl 编程技巧大全。适合初学者阅读。
💻 MHT
📖 第 1 页 / 共 5 页
字号:
<FONT color=3D#bebebe>#-----------------------------
</FONT>$/ =3D <FONT color=3D#00cd00>''</FONT><FONT =
color=3D#00ffff>;</FONT>            <FONT color=3D#bebebe># enable =
paragraph mode for all reads
</FONT><FONT color=3D#98fb98>open</FONT><FONT =
color=3D#00ffff>(</FONT>FILE, $file<FONT color=3D#00ffff>)</FONT> <FONT =
color=3D#98fb98>or</FONT> <FONT color=3D#ffa500>die</FONT> <FONT =
color=3D#00cd00>"can't open $file: $!"</FONT><FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#cdcd00>1</FONT> <FONT color=3D#ffa500>while</FONT> =
&lt;FILE&gt;<FONT color=3D#00ffff>;</FONT>
$para_count =3D $.<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=3DAEN439>Processing Every Word in a =
File</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;&gt;<FONT color=3D#00ffff>)</FONT> <FONT =
color=3D#00ffff>{</FONT>
    <FONT color=3D#ffa500>for</FONT> <FONT color=3D#9ac0cd>$chunk</FONT> =
<FONT color=3D#00ffff>(</FONT><FONT color=3D#ff7f50>split</FONT><FONT =
color=3D#00ffff>)</FONT> <FONT color=3D#00ffff>{</FONT>
        <FONT color=3D#bebebe># do something with $chunk
</FONT>    <FONT color=3D#00ffff>}</FONT>
<FONT color=3D#00ffff>}</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#ffa500>while</FONT> <FONT =
color=3D#00ffff>(</FONT>&lt;&gt;<FONT color=3D#00ffff>)</FONT> <FONT =
color=3D#00ffff>{</FONT>
    <FONT color=3D#ffa500>while</FONT> <FONT color=3D#00ffff>(</FONT> =
/<FONT color=3D#00ffff>(</FONT>\w<FONT color=3D#00ffff>[</FONT>\w<FONT =
color=3D#00cd00>'-]*)/g ) {  #'</FONT>
        <FONT color=3D#bebebe># do something with $1
</FONT>    <FONT color=3D#00ffff>}</FONT>
<FONT color=3D#00ffff>}</FONT>
<FONT color=3D#bebebe>#-----------------------------
# Make a word frequency count
</FONT><FONT color=3D#cdcd00>%seen</FONT> =3D <FONT =
color=3D#00ffff>();</FONT>
<FONT color=3D#ffa500>while</FONT> <FONT =
color=3D#00ffff>(</FONT>&lt;&gt;<FONT color=3D#00ffff>)</FONT> <FONT =
color=3D#00ffff>{</FONT>
    <FONT color=3D#ffa500>while</FONT> <FONT color=3D#00ffff>(</FONT> =
/<FONT color=3D#00ffff>(</FONT>\w<FONT color=3D#00ffff>[</FONT><FONT =
color=3D#00cd00>'\w-]*)/g ) {  #'</FONT>
        <FONT color=3D#cdcd00>$seen</FONT><FONT =
color=3D#00ffff>{</FONT><FONT color=3D#98fb98>lc</FONT> $<FONT =
color=3D#cdcd00>1</FONT><FONT color=3D#00ffff>}</FONT>++<FONT =
color=3D#00ffff>;</FONT>
    <FONT color=3D#00ffff>}</FONT>
<FONT color=3D#00ffff>}</FONT>

<FONT color=3D#bebebe># output hash in a descending numeric sort of its =
values
</FONT><FONT color=3D#ffa500>foreach</FONT> <FONT =
color=3D#9ac0cd>$word</FONT> <FONT color=3D#00ffff>(</FONT> <FONT =
color=3D#ff7f50>sort</FONT> <FONT color=3D#00ffff>{</FONT> <FONT =
color=3D#cdcd00>$seen</FONT><FONT color=3D#00ffff>{</FONT>$b<FONT =
color=3D#00ffff>}</FONT> &lt;=3D&gt; <FONT =
color=3D#cdcd00>$seen</FONT><FONT color=3D#00ffff>{</FONT>$a<FONT =
color=3D#00ffff>}</FONT> <FONT color=3D#00ffff>}</FONT> <FONT =
color=3D#ff7f50>keys</FONT> <FONT color=3D#cdcd00>%seen</FONT><FONT =
color=3D#00ffff>)</FONT> <FONT color=3D#00ffff>{</FONT>
    <FONT color=3D#ff7f50>printf</FONT> <FONT color=3D#00cd00>"%5d =
</FONT><FONT color=3D#cdcd00>%s</FONT><FONT color=3D#00cd00>\n"</FONT>, =
<FONT color=3D#cdcd00>$seen</FONT><FONT =
color=3D#00ffff>{</FONT>$word<FONT color=3D#00ffff>}</FONT>, $word<FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#00ffff>}</FONT>
<FONT color=3D#bebebe>#-----------------------------
# Line frequency count
</FONT><FONT color=3D#cdcd00>%seen</FONT> =3D <FONT =
color=3D#00ffff>();</FONT>
<FONT color=3D#ffa500>while</FONT> <FONT =
color=3D#00ffff>(</FONT>&lt;&gt;<FONT color=3D#00ffff>)</FONT> <FONT =
color=3D#00ffff>{</FONT>
    <FONT color=3D#cdcd00>$seen</FONT><FONT =
color=3D#00ffff>{</FONT><FONT color=3D#98fb98>lc</FONT> $_<FONT =
color=3D#00ffff>}</FONT>++<FONT color=3D#00ffff>;</FONT>
<FONT color=3D#00ffff>}</FONT>
<FONT color=3D#ffa500>foreach</FONT> <FONT color=3D#9ac0cd>$line</FONT> =
<FONT color=3D#00ffff>(</FONT> <FONT color=3D#ff7f50>sort</FONT> <FONT =
color=3D#00ffff>{</FONT> <FONT color=3D#cdcd00>$seen</FONT><FONT =
color=3D#00ffff>{</FONT>$b<FONT color=3D#00ffff>}</FONT> &lt;=3D&gt; =
<FONT color=3D#cdcd00>$seen</FONT><FONT color=3D#00ffff>{</FONT>$a<FONT =
color=3D#00ffff>}</FONT> <FONT color=3D#00ffff>}</FONT> <FONT =
color=3D#ff7f50>keys</FONT> <FONT color=3D#cdcd00>%seen</FONT> <FONT =
color=3D#00ffff>)</FONT> <FONT color=3D#00ffff>{</FONT>
    <FONT color=3D#ff7f50>printf</FONT> <FONT color=3D#00cd00>"%5d =
</FONT><FONT color=3D#cdcd00>%s</FONT><FONT color=3D#00cd00>"</FONT>, =
<FONT color=3D#cdcd00>$seen</FONT><FONT =
color=3D#00ffff>{</FONT>$line<FONT color=3D#00ffff>}</FONT>, $line<FONT =
color=3D#00ffff>;</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=3DAEN442>Reading a File Backwards by Line or=20
Paragraph</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#cdad00>@lines</FONT> =3D &lt;FILE&gt;<FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>while</FONT> <FONT color=3D#00ffff>(</FONT>$line =
=3D <FONT color=3D#ff7f50>pop</FONT> <FONT =
color=3D#cdad00>@lines</FONT><FONT color=3D#00ffff>)</FONT> <FONT =
color=3D#00ffff>{</FONT>
    <FONT color=3D#bebebe># do something with $line
</FONT><FONT color=3D#00ffff>}</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#cdad00>@lines</FONT> =3D <FONT =
color=3D#98fb98>reverse</FONT> &lt;FILE&gt;<FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>foreach</FONT> <FONT color=3D#9ac0cd>$line</FONT> =
<FONT color=3D#00ffff>(</FONT><FONT color=3D#cdad00>@lines</FONT><FONT =
color=3D#00ffff>)</FONT> <FONT color=3D#00ffff>{</FONT>
    <FONT color=3D#bebebe># do something with $line
</FONT><FONT color=3D#00ffff>}</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#ffa500>for</FONT> <FONT color=3D#00ffff>(</FONT>$i =
=3D <FONT color=3D#cdad00>$#lines</FONT><FONT color=3D#00ffff>;</FONT> =
$i !=3D <FONT color=3D#cdcd00>-1</FONT><FONT color=3D#00ffff>;</FONT> =
$i--<FONT color=3D#00ffff>)</FONT> <FONT color=3D#00ffff>{</FONT>
    $line =3D <FONT color=3D#cdad00>$lines</FONT><FONT =
color=3D#00ffff>[</FONT>$i<FONT color=3D#00ffff>];</FONT>
<FONT color=3D#00ffff>}</FONT>
<FONT color=3D#bebebe>#-----------------------------
# this enclosing block keeps local $/ temporary
</FONT><FONT color=3D#00ffff>{</FONT><FONT color=3D#43cd80>           =
</FONT>
    <FONT color=3D#ffa500>local</FONT> $/ =3D <FONT =
color=3D#00cd00>''</FONT><FONT color=3D#00ffff>;</FONT>
    <FONT color=3D#cdad00>@paragraphs</FONT> =3D <FONT =
color=3D#98fb98>reverse</FONT> &lt;FILE&gt;<FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#00ffff>}</FONT>

<FONT color=3D#ffa500>foreach</FONT> <FONT =
color=3D#9ac0cd>$paragraph</FONT> <FONT color=3D#00ffff>(</FONT><FONT =
color=3D#cdad00>@paragraphs</FONT><FONT color=3D#00ffff>)</FONT> <FONT =
color=3D#00ffff>{</FONT>
    <FONT color=3D#bebebe># do something
</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=3DAEN445>Trailing a Growing File</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>for</FONT> <FONT =
color=3D#00ffff>(;;)</FONT> <FONT color=3D#00ffff>{</FONT>
    <FONT color=3D#ffa500>while</FONT> <FONT =
color=3D#00ffff>(</FONT>&lt;FH&gt;<FONT color=3D#00ffff>)</FONT> <FONT =
color=3D#00ffff>{</FONT> .... <FONT color=3D#00ffff>}</FONT>
    <FONT color=3D#98fb98>sleep</FONT> $SOMETIME<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>1</FONT><FONT =
color=3D#00ffff>);</FONT>
<FONT color=3D#00ffff>}</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#ffa500>use</FONT> <FONT =
color=3D#b2dfee>IO::Seekable</FONT><FONT color=3D#00ffff>;</FONT>

<FONT color=3D#ffa500>for</FONT> <FONT color=3D#00ffff>(;;)</FONT> <FONT =
color=3D#00ffff>{</FONT>
    <FONT color=3D#ffa500>while</FONT> <FONT =
color=3D#00ffff>(</FONT>&lt;FH&gt;<FONT color=3D#00ffff>)</FONT> <FONT =
color=3D#00ffff>{</FONT> .... <FONT color=3D#00ffff>}</FONT>
    <FONT color=3D#98fb98>sleep</FONT> $SOMETIME<FONT =
color=3D#00ffff>;</FONT>
    FH-&gt;clearerr<FONT color=3D#00ffff>();</FONT>
<FONT color=3D#00ffff>}</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT>$naptime =3D <FONT color=3D#cdcd00>1</FONT><FONT =
color=3D#00ffff>;</FONT>

<FONT color=3D#ffa500>use</FONT> <FONT =
color=3D#b2dfee>IO::Handle</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#98fb98>open</FONT> <FONT color=3D#00ffff>(</FONT>LOGFILE, =
<FONT color=3D#00cd00>"/tmp/logfile"</FONT><FONT =
color=3D#00ffff>)</FONT> <FONT color=3D#98fb98>or</FONT> <FONT =
color=3D#ffa500>die</FONT> <FONT color=3D#00cd00>"can't open =
/tmp/logfile: $!"</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>for</FONT> <FONT color=3D#00ffff>(;;)</FONT> <FONT =
color=3D#00ffff>{</FONT>
    <FONT color=3D#ffa500>while</FONT> <FONT =
color=3D#00ffff>(</FONT>&lt;LOGFILE&gt;<FONT color=3D#00ffff>)</FONT> =
<FONT color=3D#00ffff>{</FONT> <FONT color=3D#ff7f50>print</FONT> <FONT =
color=3D#00ffff>}</FONT>     <FONT color=3D#bebebe># or appropriate =
processing
</FONT>    <FONT color=3D#98fb98>sleep</FONT> $naptime<FONT =
color=3D#00ffff>;</FONT>
    LOGFILE-&gt;clearerr<FONT color=3D#00ffff>();</FONT>            =
<FONT color=3D#bebebe># clear stdio error flag
</FONT><FONT color=3D#00ffff>}</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#ffa500>for</FONT> <FONT =
color=3D#00ffff>(;;)</FONT> <FONT color=3D#00ffff>{</FONT>
    <FONT color=3D#ffa500>for</FONT> <FONT =
color=3D#00ffff>(</FONT>$curpos =3D <FONT =
color=3D#98fb98>tell</FONT><FONT color=3D#00ffff>(</FONT>LOGFILE<FONT =
color=3D#00ffff>);</FONT> &lt;LOGFILE&gt;<FONT color=3D#00ffff>;</FONT> =
$curpos =3D <FONT color=3D#98fb98>tell</FONT><FONT =
color=3D#00ffff>(</FONT>LOGFILE<FONT color=3D#00ffff>))</FONT> <FONT =
color=3D#00ffff>{</FONT>
        <FONT color=3D#bebebe># process $_ here
</FONT>    <FONT color=3D#00ffff>}</FONT>
    <FONT color=3D#98fb98>sleep</FONT> $naptime<FONT =
color=3D#00ffff>;</FONT>
    <FONT color=3D#98fb98>seek</FONT><FONT =
color=3D#00ffff>(</FONT>LOGFILE, $curpos, <FONT =
color=3D#cdcd00>0</FONT><FONT color=3D#00ffff>);</FONT>  <FONT =
color=3D#bebebe># seek to where we had been
</FONT><FONT color=3D#00ffff>}</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#ffa500>exit</FONT> <FONT color=3D#ffa500>if</FONT> =
<FONT color=3D#00ffff>(</FONT><FONT color=3D#98fb98>stat</FONT><FONT =
color=3D#00ffff>(</FONT>LOGFILE<FONT color=3D#00ffff>))[</FONT><FONT =
color=3D#cdcd00>3</FONT><FONT color=3D#00ffff>]</FONT> =3D=3D <FONT =
color=3D#cdcd00>0</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#ffa500>use</FONT> File::<FONT =
color=3D#98fb98>stat</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>exit</FONT> <FONT color=3D#ffa500>if</FONT> <FONT =
color=3D#98fb98>stat</FONT><FONT color=3D#00ffff>(</FONT>*LOGFILE<FONT =
color=3D#00ffff>)</FONT>-&gt;nlink =3D=3D <FONT =
color=3D#cdcd00>0</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=3DAEN448>Picking a Random Line from a =
File</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>srand</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#98fb98>rand</FONT><FONT color=3D#00ffff>(</FONT>$.<FONT =
color=3D#00ffff>)</FONT> &lt; <FONT color=3D#cdcd00>1</FONT> &amp;&amp; =
<FONT color=3D#00ffff>(</FONT>$line =3D $_<FONT color=3D#00ffff>)</FONT> =
<FONT color=3D#ffa500>while</FONT> &lt;&gt;<FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#bebebe># $line is the random line
#-----------------------------

⌨️ 快捷键说明

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