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

📄 databaseaccess.mht

📁 Perl 编程技巧大全。适合初学者阅读。
💻 MHT
📖 第 1 页 / 共 5 页
字号:
  <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>DBI</FONT><FONT color=3D#00ffff>;</FONT>


$dbh =3D DBI-&gt;<FONT color=3D#98fb98>connect</FONT><FONT =
color=3D#00ffff>(</FONT><FONT =
color=3D#00cd00>'DBI:driver:database'</FONT>, <FONT =
color=3D#00cd00>'username'</FONT>, <FONT color=3D#00cd00>'auth'</FONT>,

            <FONT color=3D#00ffff>{</FONT> <FONT =
color=3D#00cd00>RaiseError</FONT> =3D&gt; <FONT =
color=3D#cdcd00>1</FONT>, <FONT color=3D#00cd00>AutoCommit</FONT> =
=3D&gt; <FONT color=3D#cdcd00>1</FONT><FONT color=3D#00ffff>});</FONT>

$dbh-&gt;<FONT color=3D#ffa500>do</FONT><FONT =
color=3D#00ffff>(</FONT>$sql<FONT color=3D#00ffff>);</FONT>

$sth =3D $dbh-&gt;prepare<FONT color=3D#00ffff>(</FONT>$sql<FONT =
color=3D#00ffff>);</FONT>

$sth-&gt;execute<FONT color=3D#00ffff>();</FONT>

<FONT color=3D#ffa500>while</FONT> <FONT color=3D#00ffff>(</FONT><FONT =
color=3D#cdad00>@row</FONT> =3D $sth-&gt;fetchrow_array<FONT =
color=3D#00ffff>)</FONT> <FONT color=3D#00ffff>{</FONT>

    <FONT color=3D#bebebe># ...
</FONT>
<FONT color=3D#00ffff>}</FONT>

$sth-&gt;finish<FONT color=3D#00ffff>();</FONT>

$dbh-&gt;disconnect<FONT color=3D#00ffff>();</FONT>
<FONT color=3D#bebebe>#-----------------------------
#disconnect(DBI::db=3DHASH(0x9df84)) invalidates 1 active =
cursor(s)</FONT><FONT color=3D#43cd80> </FONT><FONT color=3D#bebebe>
#    at -e line 1.
#-----------------------------
# <FONT size=3D-1><A =
href=3D"http://pleac.sourceforge.net/include/perl/ch14/dbusers">download =
the following standalone program</A></FONT>
#!/usr/bin/perl -w
# dbusers - manage MySQL user table
</FONT><FONT color=3D#ffa500>use</FONT> <FONT =
color=3D#b2dfee>DBI</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>use</FONT> <FONT =
color=3D#b2dfee>User::pwent</FONT><FONT color=3D#00ffff>;</FONT>

$dbh =3D DBI-&gt;<FONT color=3D#98fb98>connect</FONT><FONT =
color=3D#00ffff>(</FONT><FONT =
color=3D#00cd00>'DBI:mysql:dbname:mysqlserver.domain.com:3306'</FONT>,
                    <FONT color=3D#00cd00>'user'</FONT>, <FONT =
color=3D#00cd00>'password'</FONT>,
                    <FONT color=3D#00ffff>{</FONT> <FONT =
color=3D#00cd00>RaiseError</FONT> =3D&gt; <FONT color=3D#cdcd00>1</FONT> =
<FONT color=3D#00ffff>})</FONT>
  <FONT color=3D#98fb98>or</FONT> <FONT color=3D#ffa500>die</FONT> <FONT =
color=3D#00cd00>"connecting : $DBI::errstr\n"</FONT><FONT =
color=3D#00ffff>;</FONT>

$dbh-&gt;<FONT color=3D#ffa500>do</FONT><FONT =
color=3D#00ffff>(</FONT><FONT color=3D#00cd00>"CREATE TABLE users (uid =
INT, login CHAR(8))"</FONT><FONT color=3D#00ffff>);</FONT>

$sql_fmt =3D <FONT color=3D#00cd00>"INSERT INTO users VALUES( =
</FONT><FONT color=3D#cdcd00>%d</FONT><FONT color=3D#00cd00>, =
</FONT><FONT color=3D#cdcd00>%s</FONT><FONT color=3D#00cd00> =
)"</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>while</FONT> <FONT color=3D#00ffff>(</FONT>$user =
=3D <FONT color=3D#98fb98>getpwent</FONT><FONT color=3D#00ffff>)</FONT> =
<FONT color=3D#00ffff>{</FONT>
    $sql =3D <FONT color=3D#98fb98>sprintf</FONT><FONT =
color=3D#00ffff>(</FONT>$sql_fmt, $user-&gt;uid, $dbh-&gt;quote<FONT =
color=3D#00ffff>(</FONT>$user-&gt;name<FONT color=3D#00ffff>));</FONT>
    $dbh-&gt;<FONT color=3D#ffa500>do</FONT><FONT =
color=3D#00ffff>(</FONT>$sql<FONT color=3D#00ffff>);</FONT>
<FONT color=3D#00ffff>}</FONT>

$sth =3D $dbh-&gt;prepare<FONT color=3D#00ffff>(</FONT><FONT =
color=3D#00cd00>"SELECT * FROM users WHERE uid &lt; 50"</FONT><FONT =
color=3D#00ffff>);</FONT>
$sth-&gt;execute<FONT color=3D#00ffff>;</FONT>

<FONT color=3D#ffa500>while</FONT> <FONT color=3D#00ffff>((</FONT><FONT =
color=3D#cdad00>@row</FONT><FONT color=3D#00ffff>)</FONT> =3D =
$sth-&gt;fetchrow<FONT color=3D#00ffff>)</FONT> <FONT =
color=3D#00ffff>{</FONT>
    <FONT color=3D#ff7f50>print</FONT> <FONT =
color=3D#98fb98>join</FONT><FONT color=3D#00ffff>(</FONT><FONT =
color=3D#00cd00>", "</FONT>, <FONT color=3D#ff7f50>map</FONT> <FONT =
color=3D#00ffff>{</FONT><FONT color=3D#ff7f50>defined</FONT> $_ ? $_ : =
<FONT color=3D#00cd00>"(null)"</FONT><FONT color=3D#00ffff>}</FONT> =
<FONT color=3D#cdad00>@row</FONT><FONT color=3D#00ffff>)</FONT>, <FONT =
color=3D#00cd00>"\n"</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#00ffff>}</FONT>
$sth-&gt;finish<FONT color=3D#00ffff>;</FONT>

$dbh-&gt;<FONT color=3D#ffa500>do</FONT><FONT =
color=3D#00ffff>(</FONT><FONT color=3D#00cd00>"DROP TABLE =
users"</FONT><FONT color=3D#00ffff>);</FONT>

$dbh-&gt;disconnect<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=3DAEN787>Program: ggh - Grep Netscape Global=20
History</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>#-----------------------------
#% ggh http://www.perl.com/index.html
#-----------------------------
#% ggh perl
#-----------------------------
#% ggh mailto:
#-----------------------------
#% ggh -regexp '(?i)\bfaq\b'
#-----------------------------
#% ggh -epoch http://www.perl.com/perl/
#-----------------------------
#% ggh -gmtime http://www.perl.com/perl/
#-----------------------------
#% ggh | less
#-----------------------------
#% ggh -epoch | sort -rn | less
#-----------------------------
#% ggh -epoch | sort -rn | perl -pe 's/\d+/localtime $&amp;/e' | less
#-----------------------------
# <FONT size=3D-1><A =
href=3D"http://pleac.sourceforge.net/include/perl/ch14/ggh">download the =
following standalone program</A></FONT>
#!/usr/bin/perl -w
# ggh - grovel global history in netscape logs
</FONT>$USAGE =3D &lt;&lt;EO_COMPLAINT<FONT color=3D#00ffff>;</FONT>
usage: $<FONT color=3D#cdcd00>0</FONT> <FONT =
color=3D#00ffff>[</FONT>-database dbfilename<FONT =
color=3D#00ffff>]</FONT> <FONT color=3D#00ffff>[</FONT>-help<FONT =
color=3D#00ffff>]</FONT>
           <FONT color=3D#00ffff>[</FONT>-epochtime | -<FONT =
color=3D#98fb98>localtime</FONT> | -<FONT =
color=3D#98fb98>gmtime</FONT><FONT color=3D#00ffff>]</FONT>
           <FONT color=3D#00ffff>[</FONT> <FONT =
color=3D#00ffff>[</FONT>-regexp<FONT color=3D#00ffff>]</FONT> =
pattern<FONT color=3D#00ffff>]</FONT> | href ... <FONT =
color=3D#00ffff>]</FONT>
EO_COMPLAINT

<FONT color=3D#ffa500>use</FONT> <FONT =
color=3D#b2dfee>Getopt::Long</FONT><FONT color=3D#00ffff>;</FONT>

<FONT color=3D#00ffff>(</FONT>$opt_database, $opt_epochtime, $opt_<FONT =
color=3D#98fb98>localtime</FONT>,
 $opt_<FONT color=3D#98fb98>gmtime</FONT>,   $opt_regexp,    $opt_help,
 $pattern,                                  <FONT =
color=3D#00ffff>)</FONT>      =3D <FONT color=3D#00ffff>(</FONT><FONT =
color=3D#cdcd00>0</FONT><FONT color=3D#00ffff>)</FONT> <FONT =
color=3D#98fb98>x</FONT> <FONT color=3D#cdcd00>7</FONT><FONT =
color=3D#00ffff>;</FONT>

usage<FONT color=3D#00ffff>()</FONT> <FONT color=3D#ffa500>unless</FONT> =
GetOptions <FONT color=3D#ff7f50>qw</FONT><FONT color=3D#00ffff>{</FONT> =
database=3D<FONT color=3D#ff7f50>s</FONT>
                              regexp=3D<FONT color=3D#ff7f50>s</FONT>
                              epochtime <FONT =
color=3D#98fb98>localtime</FONT> <FONT color=3D#98fb98>gmtime</FONT>
                              help
                            <FONT color=3D#00ffff>};</FONT>

<FONT color=3D#ffa500>if</FONT> <FONT =
color=3D#00ffff>(</FONT>$opt_help<FONT color=3D#00ffff>)</FONT> <FONT =
color=3D#00ffff>{</FONT> <FONT color=3D#ff7f50>print</FONT> $USAGE<FONT =
color=3D#00ffff>;</FONT> <FONT color=3D#ffa500>exit</FONT><FONT =
color=3D#00ffff>;</FONT> <FONT color=3D#00ffff>}</FONT>

usage<FONT color=3D#00ffff>(</FONT><FONT color=3D#00cd00>"only one of =
localtime, gmtime, and epochtime allowed"</FONT><FONT =
color=3D#00ffff>)</FONT>
    <FONT color=3D#ffa500>if</FONT> $opt_<FONT =
color=3D#98fb98>localtime</FONT> + $opt_<FONT =
color=3D#98fb98>gmtime</FONT> + $opt_epochtime &gt; <FONT =
color=3D#cdcd00>1</FONT><FONT color=3D#00ffff>;</FONT>

<FONT color=3D#ffa500>if</FONT> <FONT color=3D#00ffff>(</FONT> =
$opt_regexp <FONT color=3D#00ffff>)</FONT> <FONT =
color=3D#00ffff>{</FONT>
    $pattern =3D $opt_regexp<FONT color=3D#00ffff>;</FONT>
<FONT color=3D#00ffff>}</FONT> <FONT color=3D#ffa500>elsif</FONT> <FONT =
color=3D#00ffff>(</FONT><FONT color=3D#cdad00>@ARGV</FONT> &amp;&amp; =
<FONT color=3D#cdad00>$ARGV</FONT><FONT color=3D#00ffff>[</FONT><FONT =
color=3D#cdcd00>0</FONT><FONT color=3D#00ffff>]</FONT> !~ <FONT =
color=3D#ff7f50>m</FONT><FONT color=3D#00ffff>(</FONT>://<FONT =
color=3D#00ffff>))</FONT> <FONT color=3D#00ffff>{</FONT>
    $pattern =3D <FONT color=3D#ff7f50>shift</FONT><FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#00ffff>}</FONT>

usage<FONT color=3D#00ffff>(</FONT><FONT color=3D#00cd00>"can't mix URLs =
and explicit patterns"</FONT><FONT color=3D#00ffff>)</FONT>
    <FONT color=3D#ffa500>if</FONT> $pattern &amp;&amp; <FONT =
color=3D#cdad00>@ARGV</FONT><FONT color=3D#00ffff>;</FONT>

<FONT color=3D#ffa500>if</FONT> <FONT color=3D#00ffff>(</FONT>$pattern =
&amp;&amp; !<FONT color=3D#ffa500>eval</FONT> <FONT =
color=3D#00ffff>{</FONT> <FONT color=3D#00cd00>''</FONT> =3D~ =
/$pattern/<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>
    $@ =3D~ <FONT color=3D#ff7f50>s</FONT>/ at \w+ line \d+\.//<FONT =
color=3D#00ffff>;</FONT>
    <FONT color=3D#ffa500>die</FONT> <FONT color=3D#00cd00>"$0: bad =
pattern $@"</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#00ffff>}</FONT>

<FONT color=3D#ffa500>require</FONT> <FONT =
color=3D#b2dfee>DB_File</FONT><FONT color=3D#00ffff>;</FONT> =
DB_File-&gt;import<FONT color=3D#00ffff>();</FONT>  <FONT =
color=3D#bebebe># delay loading until runtime
</FONT>$| =3D <FONT color=3D#cdcd00>1</FONT><FONT =
color=3D#00ffff>;</FONT>                              <FONT =
color=3D#bebebe># feed the hungry PAGERs
</FONT>
$dotdir  =3D <FONT color=3D#cdcd00>$ENV</FONT><FONT =
color=3D#00ffff>{</FONT><FONT color=3D#00cd00>HOME</FONT><FONT =
color=3D#00ffff>}</FONT>    || <FONT color=3D#cdcd00>$ENV</FONT><FONT =
color=3D#00ffff>{</FONT><FONT color=3D#00cd00>LOGNAME</FONT><FONT =
color=3D#00ffff>};</FONT>
$HISTORY =3D $opt_database || <FONT =
color=3D#00cd00>"$dotdir/.netscape/history.db"</FONT><FONT =
color=3D#00ffff>;</FONT>

<FONT color=3D#ffa500>die</FONT> <FONT color=3D#00cd00>"no netscape =
history dbase in $HISTORY: $!"</FONT> <FONT =
color=3D#ffa500>unless</FONT> <FONT color=3D#b2dfee>-e</FONT> =
$HISTORY<FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>die</FONT> <FONT color=3D#00cd00>"can't dbmopen =
$HISTORY: $!"</FONT> <FONT color=3D#ffa500>unless</FONT> <FONT =
color=3D#98fb98>dbmopen</FONT> <FONT color=3D#cdcd00>%hist_db</FONT>, =
$HISTORY, <FONT color=3D#cdcd00>0666</FONT><FONT =
color=3D#00ffff>;</FONT>

<FONT color=3D#bebebe># the next line is a hack because the C =
programmers who did this
# didn't understand strlen vs strlen+1.  jwz told me so. :-)
</FONT>$add_nulls   =3D <FONT color=3D#00ffff>(</FONT><FONT =
color=3D#98fb98>ord</FONT><FONT color=3D#00ffff>(</FONT><FONT =
color=3D#98fb98>substr</FONT><FONT color=3D#00ffff>(</FONT><FONT =
color=3D#ff7f50>each</FONT> <FONT color=3D#cdcd00>%hist_db</FONT>, <FONT =
color=3D#cdcd00>-1</FONT><FONT color=3D#00ffff>))</FONT> =3D=3D <FONT =
color=3D#cdcd00>0</FONT><FONT color=3D#00ffff>);</FONT>

<FONT color=3D#bebebe># XXX: should now do scalar keys to reset but =
don't</FONT><FONT color=3D#43cd80> </FONT><FONT color=3D#bebebe>
#      want cost of full traverse, required on tied hashes.
#   better to close and reopen?
</FONT>
$nulled_href =3D <FONT color=3D#00cd00>""</FONT><FONT =
color=3D#00ffff>;</FONT><FONT color=3D#43cd80>  </FONT>
$byte_order  =3D <FONT color=3D#00cd00>"V"</FONT><FONT =
color=3D#00ffff>;</FONT>         <FONT color=3D#bebebe># PC people don't =
grok "N" (network order)
</FONT><FONT color=3D#43cd80>    </FONT>
<FONT color=3D#ffa500>if</FONT> <FONT color=3D#00ffff>(</FONT><FONT =
color=3D#cdad00>@ARGV</FONT><FONT color=3D#00ffff>)</FONT> <FONT =
color=3D#00ffff>{</FONT>
    <FONT color=3D#f

⌨️ 快捷键说明

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