📄 filecontents.mht
字号:
<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> =
<FILE><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><><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><><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><><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> <=3D> <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><><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> <=3D> =
<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 <FILE><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> <FILE><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> <FILE><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><FH><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><FH><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->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><LOGFILE><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->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> <LOGFILE><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>->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> < <FONT color=3D#cdcd00>1</FONT> && =
<FONT color=3D#00ffff>(</FONT>$line =3D $_<FONT color=3D#00ffff>)</FONT> =
<FONT color=3D#ffa500>while</FONT> <><FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#bebebe># $line is the random line
#-----------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -