📄 packages, libraries, and modules.mht
字号:
Indirectly</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#00ffff>{</FONT>
<FONT color=3D#ff7f50>no</FONT> <FONT color=3D#b2dfee>strict</FONT> =
<FONT color=3D#00cd00>'refs'</FONT><FONT color=3D#00ffff>;</FONT>
$val =3D $<FONT color=3D#00ffff>{</FONT> $packname . <FONT =
color=3D#00cd00>"::"</FONT> . $varname <FONT color=3D#00ffff>};</FONT>
<FONT color=3D#cdad00>@vals</FONT> =3D @<FONT =
color=3D#00ffff>{</FONT> $packname . <FONT color=3D#00cd00>"::"</FONT> . =
$aryname <FONT color=3D#00ffff>};</FONT>
&<FONT color=3D#00ffff>{</FONT> $packname . <FONT =
color=3D#00cd00>"::"</FONT> . $funcname <FONT =
color=3D#00ffff>}(</FONT><FONT color=3D#00cd00>"args"</FONT><FONT =
color=3D#00ffff>);</FONT>
<FONT color=3D#00ffff>(</FONT>$packname . <FONT =
color=3D#00cd00>"::"</FONT> . $funcname<FONT color=3D#00ffff>)</FONT> =
-> <FONT color=3D#00ffff>(</FONT><FONT =
color=3D#00cd00>"args"</FONT><FONT color=3D#00ffff>);</FONT>
<FONT color=3D#00ffff>}</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#ffa500>eval</FONT> <FONT color=3D#00cd00>"package =
$packname; \$'$val =3D \$$varname"</FONT><FONT color=3D#00ffff>;</FONT> =
<FONT color=3D#bebebe># set $main'val
</FONT><FONT color=3D#ffa500>die</FONT> <FONT color=3D#ffa500>if</FONT> =
$@<FONT color=3D#00ffff>;</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#ff7f50>printf</FONT> <FONT color=3D#00cd00>"log2 =
of 100 is %.2f\n"</FONT>, log2<FONT color=3D#00ffff>(</FONT><FONT =
color=3D#cdcd00>100</FONT><FONT color=3D#00ffff>);</FONT>
<FONT color=3D#ff7f50>printf</FONT> <FONT color=3D#00cd00>"log10 of 100 =
is %.2f\n"</FONT>, log10<FONT color=3D#00ffff>(</FONT><FONT =
color=3D#cdcd00>100</FONT><FONT color=3D#00ffff>);</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT>$packname =3D <FONT color=3D#00cd00>'main'</FONT><FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>for</FONT> <FONT color=3D#00ffff>(</FONT>$i =3D =
<FONT color=3D#cdcd00>2</FONT><FONT color=3D#00ffff>;</FONT> $i < =
<FONT color=3D#cdcd00>1000</FONT><FONT color=3D#00ffff>;</FONT> =
$i++<FONT color=3D#00ffff>)</FONT> <FONT color=3D#00ffff>{</FONT>
$logN =3D <FONT color=3D#98fb98>log</FONT><FONT =
color=3D#00ffff>(</FONT>$i<FONT color=3D#00ffff>);</FONT>
<FONT color=3D#ffa500>eval</FONT> <FONT color=3D#00cd00>"sub =
${packname}::log</FONT><FONT color=3D#cdcd00>$i</FONT><FONT =
color=3D#00cd00> { log(shift) / $logN }"</FONT><FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>die</FONT> <FONT color=3D#ffa500>if</FONT> =
$@<FONT color=3D#00ffff>;</FONT>
<FONT color=3D#00ffff>}</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT>$packname =3D <FONT color=3D#00cd00>'main'</FONT><FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>for</FONT> <FONT color=3D#00ffff>(</FONT>$i =3D =
<FONT color=3D#cdcd00>2</FONT><FONT color=3D#00ffff>;</FONT> $i < =
<FONT color=3D#cdcd00>1000</FONT><FONT color=3D#00ffff>;</FONT> =
$i++<FONT color=3D#00ffff>)</FONT> <FONT color=3D#00ffff>{</FONT>
<FONT color=3D#ffa500>my</FONT> <FONT color=3D#9ac0cd>$logN</FONT> =
=3D <FONT color=3D#98fb98>log</FONT><FONT =
color=3D#00ffff>(</FONT>$i<FONT color=3D#00ffff>);</FONT>
<FONT color=3D#ff7f50>no</FONT> <FONT color=3D#b2dfee>strict</FONT> =
<FONT color=3D#00cd00>'refs'</FONT><FONT color=3D#00ffff>;</FONT>
*<FONT color=3D#00ffff>{</FONT><FONT =
color=3D#00cd00>"${packname}::log$i"</FONT><FONT =
color=3D#00ffff>}</FONT> =3D <FONT color=3D#ffa500>sub</FONT> <FONT =
color=3D#00ffff>{</FONT> <FONT color=3D#98fb98>log</FONT><FONT =
color=3D#00ffff>(</FONT><FONT color=3D#ff7f50>shift</FONT><FONT =
color=3D#00ffff>)</FONT> / $logN <FONT color=3D#00ffff>};</FONT>
<FONT color=3D#00ffff>}</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT>*blue =3D \&Colors::blue<FONT color=3D#00ffff>;</FONT>
*main::blue =3D \&Colors::azure<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=3DAEN684>Using h2ph to Translate C #include =
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>#-----------------------------
#Can't locate sys/syscall.ph in </FONT><FONT =
color=3D#cdad00>@INC</FONT><FONT color=3D#bebebe> (did you run h2ph?)
#
#(</FONT><FONT color=3D#cdad00>@INC</FONT><FONT color=3D#bebebe> =
contains: /usr/lib/perl5/i686-linux/5.00404 /usr/lib/perl5
#
#/usr/lib/perl5/site_perl/i686-linux /usr/lib/perl5/site_perl .)
#
#at some_program line 7.
#-----------------------------
#% cd /usr/include; h2ph sys/syscall.h
#-----------------------------
#% cd /usr/include; h2ph *.h */*.h
#-----------------------------
#% cd /usr/include; find . -name '*.h' -print | xargs h2ph
#-----------------------------
# file FineTime.pm
</FONT><FONT color=3D#ffa500>package</FONT> <FONT =
color=3D#b2dfee>main</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>require</FONT> <FONT =
color=3D#00cd00>'sys/syscall.ph'</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>die</FONT> <FONT color=3D#00cd00>"No =
SYS_gettimeofday in sys/syscall.ph"</FONT>
<FONT color=3D#ffa500>unless</FONT> <FONT =
color=3D#ff7f50>defined</FONT> &SYS_gettimeofday<FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>package</FONT> <FONT =
color=3D#b2dfee>FineTime</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>use</FONT> <FONT =
color=3D#b2dfee>strict</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>require</FONT> <FONT =
color=3D#b2dfee>Exporter</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>use</FONT> <FONT color=3D#b2dfee>vars</FONT> <FONT =
color=3D#ff7f50>qw</FONT><FONT color=3D#00ffff>(</FONT><FONT =
color=3D#cdad00>@ISA</FONT> <FONT color=3D#cdad00>@EXPORT_OK</FONT><FONT =
color=3D#00ffff>);</FONT>
<FONT color=3D#cdad00>@ISA</FONT> =3D <FONT =
color=3D#ff7f50>qw</FONT><FONT color=3D#00ffff>(</FONT>Exporter<FONT =
color=3D#00ffff>);</FONT>
<FONT color=3D#cdad00>@EXPORT_OK</FONT> =3D <FONT =
color=3D#ff7f50>qw</FONT><FONT color=3D#00ffff>(</FONT><FONT =
color=3D#98fb98>time</FONT><FONT color=3D#00ffff>);</FONT>
<FONT color=3D#ffa500>sub</FONT> <FONT color=3D#98fb98>time</FONT><FONT =
color=3D#00ffff>()</FONT> <FONT color=3D#00ffff>{</FONT>
<FONT color=3D#ffa500>my</FONT> <FONT color=3D#9ac0cd>$tv</FONT> =3D =
<FONT color=3D#98fb98>pack</FONT><FONT color=3D#00ffff>(</FONT><FONT =
color=3D#00cd00>"LL"</FONT>, <FONT color=3D#00ffff>());</FONT> <FONT =
color=3D#bebebe># presize buffer to two longs
</FONT> <FONT color=3D#98fb98>syscall</FONT><FONT =
color=3D#00ffff>(</FONT>&main::SYS_gettimeofday, $tv, <FONT =
color=3D#ff7f50>undef</FONT><FONT color=3D#00ffff>)</FONT> >=3D <FONT =
color=3D#cdcd00>0</FONT>
<FONT color=3D#98fb98>or</FONT> <FONT color=3D#ffa500>die</FONT> =
<FONT color=3D#00cd00>"gettimeofday: $!"</FONT><FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>my</FONT><FONT color=3D#00ffff>(</FONT><FONT =
color=3D#9ac0cd>$seconds</FONT>, <FONT =
color=3D#9ac0cd>$microseconds</FONT><FONT color=3D#00ffff>)</FONT> =3D =
<FONT color=3D#98fb98>unpack</FONT><FONT color=3D#00ffff>(</FONT><FONT =
color=3D#00cd00>"LL"</FONT>, $tv<FONT color=3D#00ffff>);</FONT>
<FONT color=3D#ffa500>return</FONT> $seconds + <FONT =
color=3D#00ffff>(</FONT>$microseconds / <FONT =
color=3D#cdcd00>1</FONT>_<FONT color=3D#cdcd00>000</FONT>_<FONT =
color=3D#cdcd00>000</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#bebebe>#-----------------------------
# <FONT size=3D-1><A =
href=3D"http://pleac.sourceforge.net/include/perl/ch12/jam">download the =
following standalone program</A></FONT>
#!/usr/bin/perl -w
# jam - stuff characters down STDIN's throat
</FONT><FONT color=3D#ffa500>require</FONT> <FONT =
color=3D#00cd00>'sys/ioctl.ph'</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>die</FONT> <FONT color=3D#00cd00>"no =
TIOCSTI"</FONT> <FONT color=3D#ffa500>unless</FONT> <FONT =
color=3D#ff7f50>defined</FONT> &TIOCSTI<FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>sub</FONT> <FONT color=3D#b2dfee>jam</FONT> <FONT =
color=3D#00ffff>{</FONT>
<FONT color=3D#ffa500>local</FONT> <FONT =
color=3D#cdcd00>$SIG</FONT><FONT color=3D#00ffff>{</FONT><FONT =
color=3D#00cd00>TTOU</FONT><FONT color=3D#00ffff>}</FONT> =3D <FONT =
color=3D#00cd00>"IGNORE"</FONT><FONT color=3D#00ffff>;</FONT> <FONT =
color=3D#bebebe># "Stopped for tty output"
</FONT> <FONT color=3D#ffa500>local</FONT> <FONT =
color=3D#9ac0cd>*TTY</FONT><FONT color=3D#00ffff>;</FONT> <FONT =
color=3D#bebebe># make local filehandle
</FONT> <FONT color=3D#98fb98>open</FONT><FONT =
color=3D#00ffff>(</FONT>TTY, <FONT =
color=3D#00cd00>"+</dev/tty"</FONT><FONT color=3D#00ffff>)</FONT> =
<FONT color=3D#98fb98>or</FONT> <FONT =
color=3D#ffa500>die</FONT> <FONT color=3D#00cd00>"no tty: =
$!"</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#cdad00>$_</FONT><FONT color=3D#00ffff>[</FONT><FONT =
color=3D#cdcd00>0</FONT><FONT color=3D#00ffff>]))</FONT> <FONT =
color=3D#00ffff>{</FONT>
<FONT color=3D#98fb98>ioctl</FONT><FONT =
color=3D#00ffff>(</FONT>TTY, &TIOCSTI, $_<FONT =
color=3D#00ffff>)</FONT> <FONT color=3D#98fb98>or</FONT> =
<FONT color=3D#ffa500>die</FONT> <FONT color=3D#00cd00>"bad TIOCSTI: =
$!"</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#00ffff>}</FONT>
<FONT color=3D#98fb98>close</FONT><FONT =
color=3D#00ffff>(</FONT>TTY<FONT color=3D#00ffff>);</FONT>
<FONT color=3D#00ffff>}</FONT>
jam<FONT color=3D#00ffff>(</FONT><FONT color=3D#00cd00>"</FONT><FONT =
color=3D#cdad00>@ARGV</FONT><FONT color=3D#00cd00>\n"</FONT><FONT =
color=3D#00ffff>);</FONT>
<FONT color=3D#bebebe>#-----------------------------
#% cat > tio.c <<EOF && cc tio.c && a.out
##include <sys/ioctl.h>
#main() { printf("%#08x\n", TIOCSTI); }
#EOF
#0x005412
#-----------------------------
# <FONT size=3D-1><A =
href=3D"http://pleac.sourceforge.net/include/perl/ch12/winsz">download =
the following standalone program</A></FONT>
#!/usr/bin/perl
# winsz - find x and y for chars and pixels
</FONT><FONT color=3D#ffa500>require</FONT> <FONT =
color=3D#00cd00>'sys/ioctl.ph'</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>die</FONT> <FONT color=3D#00cd00>"no TIOCGWINSZ =
"</FONT> <FONT color=3D#ffa500>unless</FONT> <FONT =
color=3D#ff7f50>defined</FONT> &TIOCGWINSZ<FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#98fb98>open</FONT><FONT color=3D#00ffff>(</FONT>TTY, =
<FONT color=3D#00cd00>"+</dev/tty"</FONT><FONT =
color=3D#00ffff>)</FONT> <FONT =
color=3D#98fb98>or</FONT> <FONT color=3D#ffa500>die</FONT> <FONT =
color=3D#00cd00>"No tty: $!"</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>unless</FONT> <FONT color=3D#00ffff>(</FONT><FONT =
color=3D#98fb98>ioctl</FONT><FONT color=3D#00ffff>(</FONT>TTY, =
&TIOCGWINSZ, $winsize=3D<FONT color=3D#00cd00>''</FONT><FONT =
color=3D#00ffff>))</FONT> <FONT color=3D#00ffff>{</FONT>
<FONT color=3D#ffa500>die</FONT> <FONT =
color=3D#98fb98>sprintf</FONT> <FONT color=3D#00cd00>"$0: ioctl =
TIOCGWINSZ (%08x: $!)\n"</FONT>, &TIOCGWINSZ<FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#00ffff>}</FONT>
<FONT color=3D#00ffff>(</FONT>$row, $col, $xpixel, $ypixel<FONT =
color=3D#00ffff>)</FONT> =3D <FONT color=3D#98fb98>unpack</FONT><FONT =
color=3D#00ffff>(</FONT><FONT color=3D#00cd00>'S4'</FONT>, $winsize<FONT =
color=3D#00ffff>);</FONT>
<FONT color=3D#ff7f50>print</FONT> <FONT color=3D#00cd00>"(row,col) =3D =
($row,$col)"</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ff7f50>print</FONT> <FONT color=3D#00cd00>" =
(xpixel,ypixel) =3D ($xpixel,$ypixel)"</FONT> <FONT =
color=3D#ffa500>if</FONT> $xpixel || $ypixel<FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#ff7f50>print</FONT> <FONT =
color=3D#00cd00>"\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=3DAEN687>Using h2xs to Make a Module with C =
Code</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>#-----------------------------
#% perl Makefile.PL
#% make
#-----------------------------
#% h2xs -cn FineTime
#-----------------------------
#% perl Makefile.PL
#-----------------------------
#'LIBS' =3D> [''], # e.g., '-lm'
#-----------------------------
#'LIBS' =3D> ['-L/usr/redhat/lib -lrpm'],
#-----------------------------
#% perl Makefile.PL LIB=3D~/perllib
#-----------------------------
</FONT><FONT color=3D#ffa500>package</FONT> <FONT =
color=3D#b2dfee>FineTime</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>use</FONT> <FONT =
color=3D#b2dfee>strict</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>use</FONT> <FONT color=3D#b2dfee>vars</FONT> <FONT =
color=3D#ff7f50>qw</FONT><FONT color=3D#00ffff>(</FONT>$VERSION <FONT =
color=3D#cdad00>@ISA</FONT> <FONT color=3D#cdad00>@EXPORT_OK</FONT><FONT =
color=3D#00ffff>);</FONT>
<FONT color=3D#ffa500>require</FONT> <FONT =
color=3D#b2dfee>Exporter</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>require</FONT> <FONT =
color=3D#b2dfee>DynaLoader</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#cdad00>@ISA</FONT> =3D <FONT =
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -