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

📄 userinterfaces.mht

📁 Perl 编程技巧大全。适合初学者阅读。
💻 MHT
📖 第 1 页 / 共 5 页
字号:
color=3D#b2dfee>POSIX</FONT><FONT color=3D#00ffff>;</FONT>
    <FONT color=3D#ffa500>my</FONT> <FONT =
color=3D#9ac0cd>$termios</FONT> =3D POSIX::Termios-&gt;new<FONT =
color=3D#00ffff>();</FONT>
    $termios-&gt;getattr<FONT color=3D#00ffff>;</FONT>
    $OSPEED =3D $termios-&gt;getospeed<FONT color=3D#00ffff>;</FONT>
<FONT color=3D#00ffff>};</FONT>

$terminal =3D Term::Cap-&gt;Tgetent<FONT color=3D#00ffff>({</FONT><FONT =
color=3D#00cd00>OSPEED</FONT>=3D&gt;$OSPEED<FONT =
color=3D#00ffff>});</FONT>
$terminal-&gt;Tputs<FONT color=3D#00ffff>(</FONT><FONT =
color=3D#00cd00>'cl'</FONT>, <FONT color=3D#cdcd00>1</FONT>, STDOUT<FONT =
color=3D#00ffff>);</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#98fb98>system</FONT><FONT =
color=3D#00ffff>(</FONT><FONT color=3D#00cd00>"clear"</FONT><FONT =
color=3D#00ffff>);</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT>$clear =3D $terminal-&gt;Tputs<FONT color=3D#00ffff>(</FONT><FONT =
color=3D#00cd00>'cl'</FONT><FONT color=3D#00ffff>);</FONT>
$clear =3D <FONT color=3D#00cd00>`clear`</FONT><FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#ff7f50>print</FONT> $clear<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=3DAEN801>Determining Terminal or Window =
Size</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>Term::ReadKey</FONT><FONT color=3D#00ffff>;</FONT>

<FONT color=3D#00ffff>(</FONT>$wchar, $hchar, $wpixels, $hpixels<FONT =
color=3D#00ffff>)</FONT> =3D GetTerminalSize<FONT =
color=3D#00ffff>();</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#ffa500>use</FONT> <FONT =
color=3D#b2dfee>Term::ReadKey</FONT><FONT color=3D#00ffff>;</FONT>

<FONT color=3D#00ffff>(</FONT>$width<FONT color=3D#00ffff>)</FONT> =3D =
GetTerminalSize<FONT color=3D#00ffff>();</FONT>
<FONT color=3D#ffa500>die</FONT> <FONT color=3D#00cd00>"You must have at =
least 10 characters"</FONT> <FONT color=3D#ffa500>unless</FONT> $width =
&gt;=3D <FONT color=3D#cdcd00>10</FONT><FONT color=3D#00ffff>;</FONT>

$max =3D <FONT color=3D#cdcd00>0</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>foreach</FONT> <FONT color=3D#00ffff>(</FONT><FONT =
color=3D#cdad00>@values</FONT><FONT color=3D#00ffff>)</FONT> <FONT =
color=3D#00ffff>{</FONT>
    $max =3D $_ <FONT color=3D#ffa500>if</FONT> $max &lt; $_<FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#00ffff>}</FONT>

$ratio =3D <FONT color=3D#00ffff>(</FONT>$width<FONT =
color=3D#cdcd00>-10</FONT><FONT color=3D#00ffff>)</FONT>/$max<FONT =
color=3D#00ffff>;</FONT>          <FONT color=3D#bebebe># chars per unit
</FONT><FONT color=3D#ffa500>foreach</FONT> <FONT =
color=3D#00ffff>(</FONT><FONT color=3D#cdad00>@values</FONT><FONT =
color=3D#00ffff>)</FONT> <FONT color=3D#00ffff>{</FONT>
    <FONT color=3D#ff7f50>printf</FONT><FONT =
color=3D#00ffff>(</FONT><FONT color=3D#00cd00>"%8.1f </FONT><FONT =
color=3D#cdcd00>%s</FONT><FONT color=3D#00cd00>\n"</FONT>, $_, <FONT =
color=3D#00cd00>"*"</FONT> <FONT color=3D#98fb98>x</FONT> <FONT =
color=3D#00ffff>(</FONT>$ratio*$_<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=3DAEN804>Changing Text Color</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>Term::ANSIColor</FONT><FONT color=3D#00ffff>;</FONT>

<FONT color=3D#ff7f50>print</FONT> color<FONT =
color=3D#00ffff>(</FONT><FONT color=3D#00cd00>"red"</FONT><FONT =
color=3D#00ffff>)</FONT>, <FONT color=3D#00cd00>"Danger, Will =
Robinson!\n"</FONT>, color<FONT color=3D#00ffff>(</FONT><FONT =
color=3D#00cd00>"reset"</FONT><FONT color=3D#00ffff>);</FONT>
<FONT color=3D#ff7f50>print</FONT> <FONT color=3D#00cd00>"This is just =
normal text.\n"</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ff7f50>print</FONT> colored<FONT =
color=3D#00ffff>(</FONT><FONT color=3D#00cd00>"&lt;BLINK&gt;Do you hurt =
yet?&lt;/BLINK&gt;"</FONT>, <FONT color=3D#00cd00>"blink"</FONT><FONT =
color=3D#00ffff>);</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#ffa500>use</FONT> <FONT =
color=3D#b2dfee>Term::ANSIColor</FONT> <FONT =
color=3D#ff7f50>qw</FONT><FONT color=3D#00ffff>(</FONT>:constants<FONT =
color=3D#00ffff>);</FONT>

<FONT color=3D#ff7f50>print</FONT> RED, <FONT color=3D#00cd00>"Danger, =
Will Robinson!\n"</FONT>, RESET<FONT color=3D#00ffff>;</FONT>
<FONT color=3D#bebebe>#-----------------------------
# rhyme for the deadly coral snake
</FONT><FONT color=3D#ff7f50>print</FONT> color<FONT =
color=3D#00ffff>(</FONT><FONT color=3D#00cd00>"red on_black"</FONT><FONT =
color=3D#00ffff>)</FONT>,  <FONT color=3D#00cd00>"venom =
lack\n"</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ff7f50>print</FONT> color<FONT =
color=3D#00ffff>(</FONT><FONT color=3D#00cd00>"red =
on_yellow"</FONT><FONT color=3D#00ffff>)</FONT>, <FONT =
color=3D#00cd00>"kill that fellow\n"</FONT><FONT =
color=3D#00ffff>;</FONT>

<FONT color=3D#ff7f50>print</FONT> color<FONT =
color=3D#00ffff>(</FONT><FONT color=3D#00cd00>"green on_cyan =
blink"</FONT><FONT color=3D#00ffff>)</FONT>, <FONT =
color=3D#00cd00>"garish!\n"</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ff7f50>print</FONT> color<FONT =
color=3D#00ffff>(</FONT><FONT color=3D#00cd00>"reset"</FONT><FONT =
color=3D#00ffff>);</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#ff7f50>print</FONT> colored<FONT =
color=3D#00ffff>(</FONT><FONT color=3D#00cd00>"venom lack\n"</FONT>, =
<FONT color=3D#00cd00>"red"</FONT>, <FONT =
color=3D#00cd00>"on_black"</FONT><FONT color=3D#00ffff>);</FONT>
<FONT color=3D#ff7f50>print</FONT> colored<FONT =
color=3D#00ffff>(</FONT><FONT color=3D#00cd00>"kill that =
fellow\n"</FONT>, <FONT color=3D#00cd00>"red"</FONT>, <FONT =
color=3D#00cd00>"on_yellow"</FONT><FONT color=3D#00ffff>);</FONT>

<FONT color=3D#ff7f50>print</FONT> colored<FONT =
color=3D#00ffff>(</FONT><FONT color=3D#00cd00>"garish!\n"</FONT>, <FONT =
color=3D#00cd00>"green"</FONT>, <FONT color=3D#00cd00>"on_cyan"</FONT>, =
<FONT color=3D#00cd00>"blink"</FONT><FONT color=3D#00ffff>);</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#ffa500>use</FONT> <FONT =
color=3D#b2dfee>Term::ANSIColor</FONT> <FONT =
color=3D#ff7f50>qw</FONT><FONT color=3D#00ffff>(</FONT>:constants<FONT =
color=3D#00ffff>);</FONT>

<FONT color=3D#ff7f50>print</FONT> BLACK, ON_WHITE, <FONT =
color=3D#00cd00>"black on white\n"</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ff7f50>print</FONT> WHITE, ON_BLACK, <FONT =
color=3D#00cd00>"white on black\n"</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ff7f50>print</FONT> GREEN, ON_CYAN, BLINK, <FONT =
color=3D#00cd00>"garish!\n"</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ff7f50>print</FONT> RESET<FONT color=3D#00ffff>;</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#ffa500>END</FONT> <FONT color=3D#00ffff>{</FONT> =
<FONT color=3D#ff7f50>print</FONT> color<FONT =
color=3D#00ffff>(</FONT><FONT color=3D#00cd00>"reset"</FONT><FONT =
color=3D#00ffff>)</FONT> <FONT color=3D#00ffff>}</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT>$Term::ANSIColor::EACHLINE =3D $/<FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ff7f50>print</FONT> colored<FONT =
color=3D#00ffff>(</FONT>&lt;&lt;EOF, RED, ON_WHITE, BOLD, BLINK<FONT =
color=3D#00ffff>);</FONT>
This way
<FONT color=3D#ff7f50>each</FONT> line
has its own
attribute set.
EOF
<FONT color=3D#bebebe>#-----------------------------
</FONT></PRE></FONT></TD></TR></TBODY></TABLE></DIV>
<DIV class=3DSECT2>
<H2 class=3DSECT2><A name=3DAEN807>Reading from the Keyboard</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>Term::ReadKey</FONT><FONT color=3D#00ffff>;</FONT>

ReadMode<FONT color=3D#00ffff>(</FONT><FONT =
color=3D#00cd00>'cbreak'</FONT><FONT color=3D#00ffff>);</FONT>
$key =3D ReadKey<FONT color=3D#00ffff>(</FONT><FONT =
color=3D#cdcd00>0</FONT><FONT color=3D#00ffff>);</FONT>
ReadMode<FONT color=3D#00ffff>(</FONT><FONT =
color=3D#00cd00>'normal'</FONT><FONT color=3D#00ffff>);</FONT>
<FONT color=3D#bebebe>#-----------------------------
# <FONT size=3D-1><A =
href=3D"http://pleac.sourceforge.net/include/perl/ch15/sascii">download =
the following standalone program</A></FONT>
#!/usr/bin/perl -w
# sascii - Show ASCII values for keypresses
</FONT>
<FONT color=3D#ffa500>use</FONT> <FONT =
color=3D#b2dfee>Term::ReadKey</FONT><FONT color=3D#00ffff>;</FONT>
ReadMode<FONT color=3D#00ffff>(</FONT><FONT =
color=3D#00cd00>'cbreak'</FONT><FONT color=3D#00ffff>);</FONT>
<FONT color=3D#ff7f50>print</FONT> <FONT color=3D#00cd00>"Press keys to =
see their ASCII values.  Use Ctrl-C to quit.\n"</FONT><FONT =
color=3D#00ffff>;</FONT>

<FONT color=3D#ffa500>while</FONT> <FONT color=3D#00ffff>(</FONT><FONT =
color=3D#cdcd00>1</FONT><FONT color=3D#00ffff>)</FONT> <FONT =
color=3D#00ffff>{</FONT>
    $char =3D ReadKey<FONT color=3D#00ffff>(</FONT><FONT =
color=3D#cdcd00>0</FONT><FONT color=3D#00ffff>);</FONT>
    <FONT color=3D#ffa500>last</FONT> <FONT =
color=3D#ffa500>unless</FONT> <FONT color=3D#ff7f50>defined</FONT> =
$char<FONT color=3D#00ffff>;</FONT>
    <FONT color=3D#ff7f50>printf</FONT><FONT =
color=3D#00ffff>(</FONT><FONT color=3D#00cd00>" Decimal: </FONT><FONT =
color=3D#cdcd00>%d</FONT><FONT color=3D#00cd00>\tHex: </FONT><FONT =
color=3D#cdcd00>%x</FONT><FONT color=3D#00cd00>\n"</FONT>, <FONT =
color=3D#98fb98>ord</FONT><FONT color=3D#00ffff>(</FONT>$char<FONT =
color=3D#00ffff>)</FONT>, <FONT color=3D#98fb98>ord</FONT><FONT =
color=3D#00ffff>(</FONT>$char<FONT color=3D#00ffff>));</FONT>
<FONT color=3D#00ffff>}</FONT>

ReadMode<FONT color=3D#00ffff>(</FONT><FONT =
color=3D#00cd00>'normal'</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=3DAEN810>Ringing the Terminal Bell</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#ff7f50>print</FONT> <FONT color=3D#00cd00>"\aWake =
up!\n"</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#ffa500>use</FONT> <FONT =
color=3D#b2dfee>Term::Cap</FONT><FONT color=3D#00ffff>;</FONT>

$OSPEED =3D <FONT color=3D#cdcd00>9600</FONT><FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>eval</FONT> <FONT color=3D#00ffff>{</FONT>
    <FONT color=3D#ffa500>require</FONT> <FONT =
color=3D#b2dfee>POSIX</FONT><FONT color=3D#00ffff>;</FONT>
    <FONT color=3D#ffa500>my</FONT> <FONT =
color=3D#9ac0cd>$termios</FONT> =3D POSIX::Termios-&gt;new<FONT =
color=3D#00ffff>();</FONT>
    $termios-&gt;getattr<FONT color=3D#00ffff>;</FONT>
    $OSPEED =3D $termios-&gt;getospeed<FONT color=3D#00ffff>;</FONT>
<FONT color=3D#00ffff>};</FONT>

$terminal =3D Term::Cap-&gt;Tgetent<FONT color=3D#00ffff>({</FONT><FONT =
color=3D#00cd00>OSPEED</FONT>=3D&gt;$OSPEED<FONT =
color=3D#00ffff>});</FONT>
$vb =3D <FONT color=3D#00cd00>""</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>eval</FONT> <FONT color=3D#00ffff>{</FONT>
    $terminal-&gt;Trequire<FONT color=3D#00ffff>(</FONT><FONT =
color=3D#00cd00>"vb"</FONT><FONT color=3D#00ffff>);</FONT>
    $vb =3D $terminal-&gt;Tputs<FONT color=3D#00ffff>(</FONT><FONT =
color=3D#00cd00>'vb'</FONT>, <FONT color=3D#cdcd00>1</FONT><FONT =
color=3D#00ffff>);</FONT>
<FONT color=3D#00ffff>};</FONT>

<FONT color=3D#ff7f50>print</FONT> $vb<FONT color=3D#00ffff>;</FONT>     =
                             <FONT color=3D#bebebe># ring visual bell
#-----------------------------
</FONT></PRE></FONT></TD></TR></TBODY></TABLE></DIV>
<DIV class=3DSECT2>
<H2 class=3DSECT2><A name=3DAEN813>Using POSIX termios</A></H2>
<TABLE width=3D"100%" bgColor=3D#2f4f4f border=3D0>

⌨️ 快捷键说明

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