📄 strings.mht
字号:
color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>foreach</FONT> <FONT color=3D#9ac0cd>$byte</FONT> =
<FONT color=3D#00ffff>(</FONT><FONT color=3D#ff7f50>split</FONT> <FONT =
color=3D#ff7f50>//</FONT>, $string<FONT color=3D#00ffff>)</FONT> <FONT =
color=3D#00ffff>{</FONT>
<FONT color=3D#cdcd00>$seen</FONT><FONT =
color=3D#00ffff>{</FONT>$byte<FONT color=3D#00ffff>}</FONT>++<FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#00ffff>}</FONT>
<FONT color=3D#ff7f50>print</FONT> <FONT color=3D#00cd00>"unique chars =
are: "</FONT>, <FONT color=3D#ff7f50>sort</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#00cd00>"\n"</FONT><FONT color=3D#00ffff>;</FONT>
unique chars are: adelnpy
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#cdcd00>%seen</FONT> =3D <FONT =
color=3D#00ffff>();</FONT>
$string =3D <FONT color=3D#00cd00>"an apple a day"</FONT><FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>while</FONT> <FONT color=3D#00ffff>(</FONT>$string =
=3D~ <FONT color=3D#ff7f50>/</FONT><FONT color=3D#00cd00>(.)</FONT><FONT =
color=3D#ff7f50>/</FONT><FONT color=3D#ff7f50>g</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#cdcd00>1</FONT><FONT =
color=3D#00ffff>}</FONT>++<FONT color=3D#00ffff>;</FONT>
<FONT color=3D#00ffff>}</FONT>
<FONT color=3D#ff7f50>print</FONT> <FONT color=3D#00cd00>"unique chars =
are: "</FONT>, <FONT color=3D#ff7f50>sort</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#00cd00>"\n"</FONT><FONT color=3D#00ffff>;</FONT>
unique chars are: adelnpy
<FONT color=3D#bebebe>#-----------------------------
</FONT>$sum =3D <FONT color=3D#cdcd00>0</FONT><FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>foreach</FONT> <FONT =
color=3D#9ac0cd>$ascval</FONT> <FONT color=3D#00ffff>(</FONT><FONT =
color=3D#98fb98>unpack</FONT><FONT color=3D#00ffff>(</FONT><FONT =
color=3D#00cd00>"C*"</FONT>, $string<FONT color=3D#00ffff>))</FONT> =
<FONT color=3D#00ffff>{</FONT>
$sum +=3D $ascval<FONT color=3D#00ffff>;</FONT>
<FONT color=3D#00ffff>}</FONT>
<FONT color=3D#ff7f50>print</FONT> <FONT color=3D#00cd00>"sum is =
$sum\n"</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#bebebe># prints "1248" if $string was "an apple a day"
#-----------------------------
</FONT>$sum =3D <FONT color=3D#98fb98>unpack</FONT><FONT =
color=3D#00ffff>(</FONT><FONT color=3D#00cd00>"%32C*"</FONT>, =
$string<FONT color=3D#00ffff>);</FONT>
<FONT color=3D#bebebe>#-----------------------------
# <FONT size=3D-1><A =
href=3D"http://pleac.sourceforge.net/include/perl/ch01/sum">download the =
following standalone program</A></FONT>
#!/usr/bin/perl
# sum - compute 16-bit checksum of all input files
</FONT>$checksum =3D <FONT color=3D#cdcd00>0</FONT><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> $checksum +=3D <FONT =
color=3D#98fb98>unpack</FONT><FONT color=3D#00ffff>(</FONT><FONT =
color=3D#00cd00>"%16C*"</FONT>, $_<FONT color=3D#00ffff>)</FONT> <FONT =
color=3D#00ffff>}</FONT>
$checksum %=3D <FONT color=3D#00ffff>(</FONT><FONT =
color=3D#cdcd00>2</FONT> ** <FONT color=3D#cdcd00>16</FONT><FONT =
color=3D#00ffff>)</FONT> - <FONT color=3D#cdcd00>1</FONT><FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#ff7f50>print</FONT> <FONT =
color=3D#00cd00>"$checksum\n"</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#bebebe>#-----------------------------
#% perl sum /etc/termcap
#1510
#-----------------------------
#% sum --sysv /etc/termcap
#1510 851 /etc/termcap
#-----------------------------
# <FONT size=3D-1><A =
href=3D"http://pleac.sourceforge.net/include/perl/ch01/slowcat">download =
the following standalone program</A></FONT>
#!/usr/bin/perl
# slowcat - emulate a s l o w line printer
# usage: slowcat [-DELAY] [files ...]
</FONT>$DELAY =3D <FONT color=3D#00ffff>(</FONT><FONT =
color=3D#cdad00>$ARGV</FONT><FONT color=3D#00ffff>[</FONT><FONT =
color=3D#cdcd00>0</FONT><FONT color=3D#00ffff>]</FONT> =3D~ <FONT =
color=3D#ff7f50>/</FONT><FONT color=3D#00cd00>^-([.\d]+)</FONT><FONT =
color=3D#ff7f50>/</FONT><FONT color=3D#00ffff>)</FONT> ? <FONT =
color=3D#00ffff>(</FONT><FONT color=3D#ff7f50>shift</FONT>, $<FONT =
color=3D#cdcd00>1</FONT><FONT color=3D#00ffff>)</FONT> : <FONT =
color=3D#cdcd00>1</FONT><FONT color=3D#00ffff>;</FONT>
$| =3D <FONT color=3D#cdcd00>1</FONT><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>for</FONT> <FONT color=3D#00ffff>(</FONT><FONT =
color=3D#ff7f50>split</FONT><FONT color=3D#00ffff>(</FONT><FONT =
color=3D#b2dfee>//</FONT><FONT color=3D#00ffff>))</FONT> <FONT =
color=3D#00ffff>{</FONT>
<FONT color=3D#ff7f50>print</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#98fb98>select</FONT><FONT =
color=3D#00ffff>(</FONT><FONT color=3D#ff7f50>undef</FONT>,<FONT =
color=3D#ff7f50>undef</FONT>,<FONT color=3D#ff7f50>undef</FONT>, <FONT =
color=3D#cdcd00>0.005</FONT> * $DELAY<FONT color=3D#00ffff>);</FONT>
<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=3DAEN32>Reversing a String by Word or =
Character</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>$revbytes =3D <FONT color=3D#98fb98>reverse</FONT><FONT =
color=3D#00ffff>(</FONT>$string<FONT color=3D#00ffff>);</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT>$revwords =3D <FONT color=3D#98fb98>join</FONT><FONT =
color=3D#00ffff>(</FONT><FONT color=3D#00cd00>" "</FONT>, <FONT =
color=3D#98fb98>reverse</FONT> <FONT color=3D#ff7f50>split</FONT><FONT =
color=3D#00ffff>(</FONT><FONT color=3D#00cd00>" "</FONT>, $string<FONT =
color=3D#00ffff>));</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT>$gnirts =3D <FONT color=3D#98fb98>reverse</FONT><FONT =
color=3D#00ffff>(</FONT>$string<FONT color=3D#00ffff>);</FONT> =
<FONT color=3D#bebebe># reverse letters in $string
</FONT>
<FONT color=3D#cdad00>@sdrow</FONT> =3D <FONT =
color=3D#98fb98>reverse</FONT><FONT color=3D#00ffff>(</FONT><FONT =
color=3D#cdad00>@words</FONT><FONT color=3D#00ffff>);</FONT> =
<FONT color=3D#bebebe># reverse elements in </FONT><FONT =
color=3D#cdad00>@words</FONT><FONT color=3D#bebebe>
</FONT>
$confused =3D <FONT color=3D#98fb98>reverse</FONT><FONT =
color=3D#00ffff>(</FONT><FONT color=3D#cdad00>@words</FONT><FONT =
color=3D#00ffff>);</FONT> <FONT color=3D#bebebe># reverse letters =
in join("", </FONT><FONT color=3D#cdad00>@words</FONT><FONT =
color=3D#bebebe>)
#-----------------------------
# reverse word order
</FONT>$string =3D <FONT color=3D#00cd00>'Yoda said, "can you see =
this?"'</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#cdad00>@allwords</FONT> =3D <FONT =
color=3D#ff7f50>split</FONT><FONT color=3D#00ffff>(</FONT><FONT =
color=3D#00cd00>" "</FONT>, $string<FONT color=3D#00ffff>);</FONT>
$revwords =3D <FONT color=3D#98fb98>join</FONT><FONT =
color=3D#00ffff>(</FONT><FONT color=3D#00cd00>" "</FONT>, <FONT =
color=3D#98fb98>reverse</FONT> <FONT =
color=3D#cdad00>@allwords</FONT><FONT color=3D#00ffff>);</FONT>
<FONT color=3D#ff7f50>print</FONT> $revwords, <FONT =
color=3D#00cd00>"\n"</FONT><FONT color=3D#00ffff>;</FONT>
this?<FONT color=3D#00cd00>" see you "</FONT>can said, Yoda
<FONT color=3D#bebebe>#-----------------------------
</FONT>$revwords =3D <FONT color=3D#98fb98>join</FONT><FONT =
color=3D#00ffff>(</FONT><FONT color=3D#00cd00>" "</FONT>, <FONT =
color=3D#98fb98>reverse</FONT> <FONT color=3D#ff7f50>split</FONT><FONT =
color=3D#00ffff>(</FONT><FONT color=3D#00cd00>" "</FONT>, $string<FONT =
color=3D#00ffff>));</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT>$revwords =3D <FONT color=3D#98fb98>join</FONT><FONT =
color=3D#00ffff>(</FONT><FONT color=3D#00cd00>""</FONT>, <FONT =
color=3D#98fb98>reverse</FONT> <FONT color=3D#ff7f50>split</FONT><FONT =
color=3D#00ffff>(</FONT><FONT color=3D#ff7f50>/</FONT><FONT =
color=3D#00cd00>(\s+)</FONT><FONT color=3D#ff7f50>/</FONT>, $string<FONT =
color=3D#00ffff>));</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT>$word =3D <FONT color=3D#00cd00>"reviver"</FONT><FONT =
color=3D#00ffff>;</FONT>
$is_palindrome =3D <FONT color=3D#00ffff>(</FONT>$word <FONT =
color=3D#98fb98>eq</FONT> <FONT color=3D#98fb98>reverse</FONT><FONT =
color=3D#00ffff>(</FONT>$word<FONT color=3D#00ffff>));</FONT>
<FONT color=3D#bebebe>#-----------------------------
#% perl -nle 'print if $_ eq reverse && length > 5' =
/usr/dict/words
#deedeed
#
#degged
#
#deified
#
#denned
#
#hallah
#
#kakkak
#
#murdrum
#
#redder
#
#repaper
#
#retter
#
#reviver
#
#rotator
#
#sooloos
#
#tebbet
#
#terret
#
#tut-tut
#-----------------------------
</FONT></PRE></FONT></TD></TR></TBODY></TABLE></DIV>
<DIV class=3DSECT2>
<H2 class=3DSECT2><A name=3DAEN35>Expanding and Compressing =
Tabs</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>$string =3D~ <FONT color=3D#ff7f50>s</FONT><FONT =
color=3D#ff7f50>/</FONT><FONT color=3D#00cd00>\t+</FONT><FONT =
color=3D#ff7f50>/</FONT><FONT color=3D#00cd00>' '</FONT> <FONT =
color=3D#98fb98>x</FONT> <FONT color=3D#00ffff>(</FONT><FONT =
color=3D#98fb98>length</FONT><FONT color=3D#00ffff>(</FONT>$&<FONT =
color=3D#00ffff>)</FONT> * <FONT color=3D#cdcd00>8</FONT> - <FONT =
color=3D#98fb98>length</FONT><FONT color=3D#00ffff>(</FONT>$`<FONT =
color=3D#00ffff>)</FONT> % <FONT color=3D#cdcd00>8</FONT><FONT =
color=3D#00ffff>)</FONT><FONT color=3D#ff7f50>/</FONT>e<FONT =
color=3D#00ffff>)</FONT> <FONT color=3D#00ffff>{</FONT>
<FONT color=3D#bebebe># spin in empty loop until substitution =
finally fails
</FONT><FONT color=3D#00ffff>}</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#ffa500>use</FONT> <FONT =
color=3D#b2dfee>Text::Tabs</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#cdad00>@expanded_lines</FONT> =3D expand<FONT =
color=3D#00ffff>(</FONT><FONT =
color=3D#cdad00>@lines_with_tabs</FONT><FONT color=3D#00ffff>);</FONT>
<FONT color=3D#cdad00>@tabulated_lines</FONT> =3D unexpand<FONT =
color=3D#00ffff>(</FONT><FONT =
color=3D#cdad00>@lines_without_tabs</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#cdcd00>1</FONT> <FONT color=3D#ffa500>while</FONT> =
<FONT color=3D#ff7f50>s</FONT>/\t+/<FONT color=3D#00cd00>' '</FONT> =
<FONT color=3D#98fb98>x</FONT> <FONT color=3D#00ffff>(</FONT><FONT =
color=3D#98fb98>length</FONT><FONT color=3D#00ffff>(</FONT>$&<FONT =
color=3D#00ffff>)</FONT> * <FONT color=3D#cdcd00>8</FONT> - <FONT =
color=3D#98fb98>length</FONT><FONT color=3D#00ffff>(</FONT>$`<FONT =
color=3D#00ffff>)</FONT> % <FONT color=3D#cdcd00>8</FONT><FONT =
color=3D#00ffff>)</FONT>/e<FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ff7f50>print</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>Text::Tabs</FONT><FONT color=3D#00ffff>;</FONT>
$tabstop =3D <FONT color=3D#cdcd00>4</FONT><FONT =
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -