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

📄 datesandtimes.mht

📁 Perl 编程技巧大全。适合初学者阅读。
💻 MHT
📖 第 1 页 / 共 4 页
字号:
  <TBODY>
  <TR>
    <TD><PRE class=3DSCREEN><FONT color=3D#f5deb3 size=3D+1><FONT =
color=3D#bebebe>#-----------------------------
</FONT>$STRING =3D <FONT color=3D#98fb98>localtime</FONT><FONT =
color=3D#00ffff>(</FONT>$EPOCH_SECONDS<FONT color=3D#00ffff>);</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#ffa500>use</FONT> <FONT =
color=3D#b2dfee>POSIX</FONT> <FONT color=3D#ff7f50>qw</FONT><FONT =
color=3D#00ffff>(</FONT>strftime<FONT color=3D#00ffff>);</FONT>
$STRING =3D strftime<FONT color=3D#00ffff>(</FONT>$FORMAT, $SECONDS, =
$MINUTES, $HOUR,
                   $DAY_OF_MONTH, $MONTH, $YEAR, $WEEKDAY,
                   $YEARDAY, $DST<FONT color=3D#00ffff>);</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#ffa500>use</FONT> <FONT =
color=3D#b2dfee>Date::Manip</FONT> <FONT color=3D#ff7f50>qw</FONT><FONT =
color=3D#00ffff>(</FONT>UnixDate<FONT color=3D#00ffff>);</FONT>
$STRING =3D UnixDate<FONT color=3D#00ffff>(</FONT>$DATE, $FORMAT<FONT =
color=3D#00ffff>);</FONT>
<FONT color=3D#bebebe>#-----------------------------
# Sun Sep 21 15:33:36 1997
#-----------------------------
</FONT><FONT color=3D#ffa500>use</FONT> <FONT =
color=3D#b2dfee>Time::Local</FONT><FONT color=3D#00ffff>;</FONT>
$time =3D timelocal<FONT color=3D#00ffff>(</FONT><FONT =
color=3D#cdcd00>50</FONT>, <FONT color=3D#cdcd00>45</FONT>, <FONT =
color=3D#cdcd00>3</FONT>, <FONT color=3D#cdcd00>18</FONT>, <FONT =
color=3D#cdcd00>0</FONT>, <FONT color=3D#cdcd00>73</FONT><FONT =
color=3D#00ffff>);</FONT>
<FONT color=3D#ff7f50>print</FONT> <FONT color=3D#00cd00>"Scalar =
localtime gives: "</FONT>, <FONT color=3D#ff7f50>scalar</FONT><FONT =
color=3D#00ffff>(</FONT><FONT color=3D#98fb98>localtime</FONT><FONT =
color=3D#00ffff>(</FONT>$time<FONT color=3D#00ffff>))</FONT>, <FONT =
color=3D#00cd00>"\n"</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#bebebe># Scalar localtime gives: Thu Jan 18 03:45:50 1973
#-----------------------------
</FONT><FONT color=3D#ffa500>use</FONT> <FONT =
color=3D#b2dfee>POSIX</FONT> <FONT color=3D#ff7f50>qw</FONT><FONT =
color=3D#00ffff>(</FONT>strftime<FONT color=3D#00ffff>);</FONT>
<FONT color=3D#ffa500>use</FONT> <FONT =
color=3D#b2dfee>Time::Local</FONT><FONT color=3D#00ffff>;</FONT>
$time =3D timelocal<FONT color=3D#00ffff>(</FONT><FONT =
color=3D#cdcd00>50</FONT>, <FONT color=3D#cdcd00>45</FONT>, <FONT =
color=3D#cdcd00>3</FONT>, <FONT color=3D#cdcd00>18</FONT>, <FONT =
color=3D#cdcd00>0</FONT>, <FONT color=3D#cdcd00>73</FONT><FONT =
color=3D#00ffff>);</FONT>
<FONT color=3D#ff7f50>print</FONT> <FONT color=3D#00cd00>"strftime =
gives: "</FONT>, strftime<FONT color=3D#00ffff>(</FONT><FONT =
color=3D#00cd00>"</FONT><FONT color=3D#cdcd00>%A</FONT><FONT =
color=3D#00cd00> </FONT><FONT color=3D#cdcd00>%D</FONT><FONT =
color=3D#00cd00>"</FONT>, <FONT color=3D#98fb98>localtime</FONT><FONT =
color=3D#00ffff>(</FONT>$time<FONT color=3D#00ffff>))</FONT>, <FONT =
color=3D#00cd00>"\n"</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#bebebe># strftime gives: Thursday 01/18/73
#-----------------------------
</FONT><FONT color=3D#ffa500>use</FONT> <FONT =
color=3D#b2dfee>Date::Manip</FONT> <FONT color=3D#ff7f50>qw</FONT><FONT =
color=3D#00ffff>(</FONT>ParseDate UnixDate<FONT =
color=3D#00ffff>);</FONT>
$date =3D ParseDate<FONT color=3D#00ffff>(</FONT><FONT =
color=3D#00cd00>"18 Jan 1973, 3:45:50"</FONT><FONT =
color=3D#00ffff>);</FONT>
$datestr =3D UnixDate<FONT color=3D#00ffff>(</FONT>$date, <FONT =
color=3D#00cd00>"</FONT><FONT color=3D#cdcd00>%a</FONT><FONT =
color=3D#00cd00> </FONT><FONT color=3D#cdcd00>%b</FONT><FONT =
color=3D#00cd00> </FONT><FONT color=3D#cdcd00>%e</FONT><FONT =
color=3D#00cd00> </FONT><FONT color=3D#cdcd00>%H:%M:%S</FONT><FONT =
color=3D#00cd00> </FONT><FONT color=3D#cdcd00>%z</FONT><FONT =
color=3D#00cd00> </FONT><FONT color=3D#cdcd00>%Y</FONT><FONT =
color=3D#00cd00>"</FONT><FONT color=3D#00ffff>);</FONT>    <FONT =
color=3D#bebebe># as scalar
</FONT><FONT color=3D#ff7f50>print</FONT> <FONT =
color=3D#00cd00>"Date::Manip gives: $datestr\n"</FONT><FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#bebebe># Date::Manip gives: Thu Jan 18 03:45:50 GMT 1973
#-----------------------------
</FONT></PRE></FONT></TD></TR></TBODY></TABLE></DIV>
<DIV class=3DSECT2>
<H2 class=3DSECT2><A name=3DAEN159>High-Resolution Timers</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>Time::HiRes</FONT> <FONT color=3D#ff7f50>qw</FONT><FONT =
color=3D#00ffff>(</FONT>gettimeofday<FONT color=3D#00ffff>);</FONT>
$t0 =3D gettimeofday<FONT color=3D#00ffff>;</FONT>
<FONT color=3D#bebebe>## do your operation here
</FONT>$t1 =3D gettimeofday<FONT color=3D#00ffff>;</FONT>
$elapsed =3D $t1 - $t0<FONT color=3D#00ffff>;</FONT>
<FONT color=3D#bebebe># $elapsed is a floating point value, representing =
number
# of seconds between $t0 and $t1
#-----------------------------
</FONT><FONT color=3D#ffa500>use</FONT> <FONT =
color=3D#b2dfee>Time::HiRes</FONT> <FONT color=3D#ff7f50>qw</FONT><FONT =
color=3D#00ffff>(</FONT>gettimeofday<FONT color=3D#00ffff>);</FONT>
<FONT color=3D#ff7f50>print</FONT> <FONT color=3D#00cd00>"Press return =
when ready: "</FONT><FONT color=3D#00ffff>;</FONT>
$before =3D gettimeofday<FONT color=3D#00ffff>;</FONT>
$line =3D &lt;&gt;<FONT color=3D#00ffff>;</FONT>
$elapsed =3D gettimeofday-$before<FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ff7f50>print</FONT> <FONT color=3D#00cd00>"You took =
$elapsed seconds.\n"</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#bebebe># Press return when ready:</FONT><FONT =
color=3D#43cd80> </FONT><FONT color=3D#bebebe>
#</FONT><FONT color=3D#43cd80> </FONT><FONT color=3D#bebebe>
# You took 0.228149 seconds.
#-----------------------------
</FONT><FONT color=3D#ffa500>require</FONT> <FONT =
color=3D#00cd00>'sys/syscall.ph'</FONT><FONT color=3D#00ffff>;</FONT>

<FONT color=3D#bebebe># initialize the structures returned by =
gettimeofday
</FONT>$TIMEVAL_T =3D <FONT color=3D#00cd00>"LL"</FONT><FONT =
color=3D#00ffff>;</FONT>
$done =3D $start =3D <FONT color=3D#98fb98>pack</FONT><FONT =
color=3D#00ffff>(</FONT>$TIMEVAL_T, <FONT color=3D#00ffff>());</FONT>

<FONT color=3D#bebebe># prompt
</FONT><FONT color=3D#ff7f50>print</FONT> <FONT color=3D#00cd00>"Press =
return when ready: "</FONT><FONT color=3D#00ffff>;</FONT>

<FONT color=3D#bebebe># read the time into $start
</FONT><FONT color=3D#98fb98>syscall</FONT><FONT =
color=3D#00ffff>(</FONT>&amp;SYS_gettimeofday, $start, <FONT =
color=3D#cdcd00>0</FONT><FONT color=3D#00ffff>)</FONT> !=3D <FONT =
color=3D#cdcd00>-1</FONT>
           || <FONT color=3D#ffa500>die</FONT> <FONT =
color=3D#00cd00>"gettimeofday: $!"</FONT><FONT color=3D#00ffff>;</FONT>

<FONT color=3D#bebebe># read a line
</FONT>$line =3D &lt;&gt;<FONT color=3D#00ffff>;</FONT>

<FONT color=3D#bebebe># read the time into $done
</FONT><FONT color=3D#98fb98>syscall</FONT><FONT =
color=3D#00ffff>(</FONT>&amp;SYS_gettimeofday, $done, <FONT =
color=3D#cdcd00>0</FONT><FONT color=3D#00ffff>)</FONT> !=3D <FONT =
color=3D#cdcd00>-1</FONT>
       || <FONT color=3D#ffa500>die</FONT> <FONT =
color=3D#00cd00>"gettimeofday: $!"</FONT><FONT color=3D#00ffff>;</FONT>

<FONT color=3D#bebebe># expand the structure
</FONT><FONT color=3D#cdad00>@start</FONT> =3D <FONT =
color=3D#98fb98>unpack</FONT><FONT color=3D#00ffff>(</FONT>$TIMEVAL_T, =
$start<FONT color=3D#00ffff>);</FONT>
<FONT color=3D#cdad00>@done</FONT>  =3D <FONT =
color=3D#98fb98>unpack</FONT><FONT color=3D#00ffff>(</FONT>$TIMEVAL_T, =
$done<FONT color=3D#00ffff>);</FONT>

<FONT color=3D#bebebe># fix microseconds
</FONT><FONT color=3D#ffa500>for</FONT> <FONT =
color=3D#00ffff>(</FONT><FONT color=3D#cdad00>$done</FONT><FONT =
color=3D#00ffff>[</FONT><FONT color=3D#cdcd00>1</FONT><FONT =
color=3D#00ffff>]</FONT>, <FONT color=3D#cdad00>$start</FONT><FONT =
color=3D#00ffff>[</FONT><FONT color=3D#cdcd00>1</FONT><FONT =
color=3D#00ffff>])</FONT> <FONT color=3D#00ffff>{</FONT> $_ /=3D <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#43cd80>    </FONT>
<FONT color=3D#bebebe># calculate time difference
</FONT>$delta_<FONT color=3D#98fb98>time</FONT> =3D <FONT =
color=3D#98fb98>sprintf</FONT> <FONT color=3D#00cd00>"%.4f"</FONT>, =
<FONT color=3D#00ffff>(</FONT><FONT color=3D#cdad00>$done</FONT><FONT =
color=3D#00ffff>[</FONT><FONT color=3D#cdcd00>0</FONT><FONT =
color=3D#00ffff>]</FONT>  + <FONT color=3D#cdad00>$done</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#cdad00>$start</FONT><FONT color=3D#00ffff>[</FONT><FONT =
color=3D#cdcd00>0</FONT><FONT color=3D#00ffff>]</FONT> + <FONT =
color=3D#cdad00>$start</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#ff7f50>print</FONT> <FONT color=3D#00cd00>"That took =
$delta_time seconds\n"</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#bebebe># Press return when ready:</FONT><FONT =
color=3D#43cd80> </FONT><FONT color=3D#bebebe>
#</FONT><FONT color=3D#43cd80> </FONT><FONT color=3D#bebebe>
# That took 0.3037 seconds
#-----------------------------
</FONT><FONT color=3D#ffa500>use</FONT> <FONT =
color=3D#b2dfee>Time::HiRes</FONT> <FONT color=3D#ff7f50>qw</FONT><FONT =
color=3D#00ffff>(</FONT>gettimeofday<FONT color=3D#00ffff>);</FONT>
<FONT color=3D#bebebe># take mean sorting time
</FONT>$size =3D <FONT color=3D#cdcd00>500</FONT><FONT =
color=3D#00ffff>;</FONT>
$number_of_<FONT color=3D#98fb98>times</FONT> =3D <FONT =
color=3D#cdcd00>100</FONT><FONT color=3D#00ffff>;</FONT>
$total_<FONT color=3D#98fb98>time</FONT> =3D <FONT =
color=3D#cdcd00>0</FONT><FONT color=3D#00ffff>;</FONT>

<FONT color=3D#ffa500>for</FONT> <FONT color=3D#00ffff>(</FONT>$i =3D =
<FONT color=3D#cdcd00>0</FONT><FONT color=3D#00ffff>;</FONT> $i &lt; =
$number_of_<FONT color=3D#98fb98>times</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#00ffff>(</FONT><FONT =
color=3D#cdad00>@array</FONT>, <FONT color=3D#9ac0cd>$j</FONT>, <FONT =
color=3D#9ac0cd>$begin</FONT>, <FONT color=3D#9ac0cd>$time</FONT><FONT =
color=3D#00ffff>);</FONT>
    <FONT color=3D#bebebe># populate array
</FONT>    <FONT color=3D#cdad00>@array</FONT> =3D <FONT =
color=3D#00ffff>();</FONT>
    <FONT color=3D#ffa500>for</FONT> <FONT =
color=3D#00ffff>(</FONT>$j=3D<FONT color=3D#cdcd00>0</FONT><FONT =
color=3D#00ffff>;</FONT> $j&lt;$size<FONT color=3D#00ffff>;</FONT> =
$j++<FONT color=3D#00ffff>)</FONT> <FONT color=3D#00ffff>{</FONT> <FONT =
color=3D#ff7f50>push</FONT><FONT color=3D#00ffff>(</FONT><FONT =
color=3D#cdad00>@array</FONT>, <FONT color=3D#98fb98>rand</FONT><FONT =
color=3D#00ffff>)</FONT> <FONT color=3D#00ffff>}</FONT>

    <FONT color=3D#bebebe># sort it
</FONT>    $begin =3D gettimeofday<FONT color=3D#00ffff>;</FONT>
    <FONT color=3D#cdad00>@array</FONT> =3D <FONT =
color=3D#ff7f50>sort</FONT> <FONT color=3D#00ffff>{</FONT> $a =
&lt;=3D&gt; $b <FONT color=3D#00ffff>}</FONT> <FONT =
color=3D#cdad00>@array</FONT><FONT color=3D#00ffff>;</FONT>
    $time =3D gettimeofday-$begin<FONT color=3D#00ffff>;</FONT>
    $total_<FONT color=3D#98fb98>time</FONT> +=3D $time<FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#00ffff>}</FONT>

<FONT color=3D#ff7f50>printf</FONT> <FONT color=3D#00cd00>"On average, =
sorting </FONT><FONT color=3D#cdcd00>%d</FONT><FONT color=3D#00cd00> =
random numbers takes %.5f seconds\n"</FONT>,
    $size, <FONT color=3D#00ffff>(</FONT>$total_<FONT =
color=3D#98fb98>time</FONT>/$number_of_<FONT =
color=3D#98fb98>times</FONT><FONT color=3D#00ffff>);</FONT>
<FONT color=3D#bebebe># On average, sorting 500 random numbers takes =
0.02821 seconds
#-----------------------------
</FONT></PRE></FONT></TD></TR></TBODY></TABLE></DIV>
<DIV class=3DSECT2>
<H2 class=3DSECT2><A name=3DAEN162>Short Sleeps</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>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>, =
$time_to_<FONT color=3D#98fb98>sleep</FONT><FONT =
color=3D#00ffff>);</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#ffa500>use</FONT> <FONT =
color=3D#b2dfee>Time::HiRes</FONT> <FONT color=3D#ff7f50>qw</FONT><FONT =
color=3D#00ffff>(</FONT><FONT color=3D#98fb98>sleep</FONT><FONT =
color=3D#00ffff>);</FONT>
<FONT color=3D#98fb98>sleep</FONT><FONT =
color=3D#00ffff>(</FONT>$time_to_<FONT color=3D#98fb98>sleep</FONT><FONT =
color=3D#00ffff>);</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#ffa500>while</FONT> <FONT =
color=3D#00ffff>(</FONT>&lt;&gt;<FONT color=3D#00ffff>)</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.25</FONT><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>Time::HiRes</FONT> <FONT color=3D#ff7f50>qw</FONT><FONT =
color=3D#00ffff>(</FONT><FONT color=3D#98fb98>sleep</FONT><FONT =
color=3D#00ffff>);</FONT>
<FONT color=3D#ffa500>while</FONT> <FONT =
color=3D#00ffff>(</FONT>&lt;&gt;<FONT color=3D#00ffff>)</FONT> <FONT =
color=3D#00ffff>{</FONT>
    <FONT color=3D#98fb98>sleep</FONT><FONT =
color=3D#00ffff>(</FONT><FONT color=3D#cdcd00>0.25</FONT><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></PRE></FONT></TD></TR></TBODY></TABLE></DIV>
<DIV class=3DSECT2>
<H2 class=3DSECT2><A name=3DAEN165>Program: hopdelta</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>Date::Manip</FONT> <FONT color=3D#ff7f50>qw</FONT><FONT =

⌨️ 快捷键说明

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