<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" version="2.0"><channel><title>博客园-石榴树下的刺猬窝</title><link>http://www.cnblogs.com/passos/</link><description>应无所住而生其心</description><language>zh-cn</language><lastBuildDate>Mon, 09 Nov 2009 09:33:38 GMT</lastBuildDate><pubDate>Mon, 09 Nov 2009 09:33:38 GMT</pubDate><ttl>60</ttl><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/log4life" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item><title>打车抬表费用图</title><link>http://www.cnblogs.com/passos/archive/2009/07/05/1517051.html</link><dc:creator>古月春秋</dc:creator><author>古月春秋</author><pubDate>Sat, 04 Jul 2009 21:39:00 GMT</pubDate><guid>http://www.cnblogs.com/passos/archive/2009/07/05/1517051.html</guid><description><![CDATA[<p>　　阅读: 60 评论: 0 作者: <a href="http://www.cnblogs.com/passos/" target="_blank">古月春秋</a> 发表于 2009-07-05 05:39 <a href="http://www.cnblogs.com/passos/archive/2009/07/05/1517051.html" target="_blank">原文链接</a></p><p>&nbsp;</p>
<div class="cnblogs_code"><img align="top" width="11" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" height="16" onclick="this.style.display='none'; document.getElementById('Code_Closed_Text_055622').style.display='none'; document.getElementById('Code_Open_Image_055622').style.display='inline'; document.getElementById('Code_Open_Text_055622').style.display='inline';" style="display: none" id="Code_Closed_Image_055622" /><img align="top" width="11" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" height="16" onclick="this.style.display='none'; document.getElementById('Code_Open_Text_055622').style.display='none'; getElementById('Code_Closed_Image_055622').style.display='inline'; getElementById('Code_Closed_Text_055622').style.display='inline';" id="Code_Open_Image_055622" /><span id="Code_Closed_Text_055622" class="cnblogs_code_Collapse">Code</span><span id="Code_Open_Text_055622"><br /><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF;">&lt;</span><span style="color: #800000;">html</span><span style="color: #0000FF;">&gt;</span><span style="color: #000000;"><br /></span><span style="color: #0000FF;">&lt;</span><span style="color: #800000;">script&nbsp;</span><span style="color: #FF0000;">type</span><span style="color: #0000FF;">="text/javascript"</span><span style="color: #FF0000;">&nbsp;src</span><span style="color: #0000FF;">="wz_jsgraphics.js"</span><span style="color: #0000FF;">&gt;&lt;/</span><span style="color: #800000;">script</span><span style="color: #0000FF;">&gt;</span><span style="color: #000000;"><br /><br /></span><span style="color: #0000FF;">&lt;</span><span style="color: #800000;">body</span><span style="color: #0000FF;">&gt;</span><span style="color: #000000;"><br /></span><span style="color: #0000FF;">&lt;</span><span style="color: #800000;">script&nbsp;</span><span style="color: #FF0000;">type</span><span style="color: #0000FF;">="text/javascript"</span><span style="color: #0000FF;">&gt;</span><span style="background-color: #F5F5F5; color: #000000;"><br /></span><span style="background-color: #F5F5F5; color: #000000;">&lt;!--</span><span style="background-color: #F5F5F5; color: #000000;"><br /></span><span style="background-color: #F5F5F5; color: #0000FF;">function</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;getPrice(distance,&nbsp;night)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="background-color: #F5F5F5; color: #0000FF;">var</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;unitPrice&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">=</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">2.0</span><span style="background-color: #F5F5F5; color: #000000;">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;basicDistance&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">=</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">3</span><span style="background-color: #F5F5F5; color: #000000;">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;basicPrice&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">=</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">10</span><span style="background-color: #F5F5F5; color: #000000;">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;extDistance&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">=</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">15</span><span style="background-color: #F5F5F5; color: #000000;">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;extPrice&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">=</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">3.0</span><span style="background-color: #F5F5F5; color: #000000;">;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="background-color: #F5F5F5; color: #0000FF;">var</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;price&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">=</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">0.0</span><span style="background-color: #F5F5F5; color: #000000;">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="background-color: #F5F5F5; color: #0000FF;">if</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;(&nbsp;distance&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">==</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">0</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;)&nbsp;</span><span style="background-color: #F5F5F5; color: #0000FF;">return</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">0</span><span style="background-color: #F5F5F5; color: #000000;">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="background-color: #F5F5F5; color: #0000FF;">if</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;(&nbsp;distance&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">&lt;=</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;basicDistance&nbsp;)&nbsp;</span><span style="background-color: #F5F5F5; color: #0000FF;">return</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;basicPrice;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="background-color: #F5F5F5; color: #0000FF;">if</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;(&nbsp;distance&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">&lt;=</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;extDistance&nbsp;)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;price&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">=</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;basicPrice&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">+</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;unitPrice&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">*</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;(distance&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">-</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;basicDistance);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="background-color: #F5F5F5; color: #0000FF;">return</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;price;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;price&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">+=</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;basicPrice&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">+</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;unitPrice</span><span style="background-color: #F5F5F5; color: #000000;">*</span><span style="background-color: #F5F5F5; color: #000000;">(extDistance</span><span style="background-color: #F5F5F5; color: #000000;">-</span><span style="background-color: #F5F5F5; color: #000000;">basicDistance)&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">+</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;extPrice</span><span style="background-color: #F5F5F5; color: #000000;">*</span><span style="background-color: #F5F5F5; color: #000000;">(distance</span><span style="background-color: #F5F5F5; color: #000000;">-</span><span style="background-color: #F5F5F5; color: #000000;">extDistance)<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="background-color: #F5F5F5; color: #0000FF;">return</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;price;<br />}<br /><br /></span><span style="background-color: #F5F5F5; color: #0000FF;">function</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;getPriceWithReset(distance,&nbsp;night,&nbsp;reset)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="background-color: #F5F5F5; color: #0000FF;">if</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;(&nbsp;reset&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">==</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">0</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="background-color: #F5F5F5; color: #0000FF;">return</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;getPrice(distance,&nbsp;night);<br />&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="background-color: #F5F5F5; color: #0000FF;">else</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="background-color: #F5F5F5; color: #0000FF;">return</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;getPrice(reset,&nbsp;night)&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">*</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;Math.floor(distance</span><span style="background-color: #F5F5F5; color: #000000;">/</span><span style="background-color: #F5F5F5; color: #000000;">reset)&nbsp;+&nbsp;getPrice(distance&nbsp;%&nbsp;reset,&nbsp;night);</span><span style="background-color: #F5F5F5; color: #000000;"><br /></span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /><br /></span><span style="background-color: #F5F5F5; color: #0000FF;">var</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;coordXUnit&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">=</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">8</span><span style="background-color: #F5F5F5; color: #000000;">,&nbsp;coordYUnit&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">=</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">3</span><span style="background-color: #F5F5F5; color: #000000;">,<br />&nbsp;&nbsp;&nbsp;&nbsp;basicX&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">=</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">100</span><span style="background-color: #F5F5F5; color: #000000;">,&nbsp;basicY&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">=</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">50</span><span style="background-color: #F5F5F5; color: #000000;">,<br />&nbsp;&nbsp;&nbsp;&nbsp;coordMaxX&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">=</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">101</span><span style="background-color: #F5F5F5; color: #000000;">,&nbsp;coordMaxY&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">=</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">251</span><span style="background-color: #F5F5F5; color: #000000;">;<br /><br /></span><span style="background-color: #F5F5F5; color: #0000FF;">function</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;drawString(str,&nbsp;x,&nbsp;y)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;jg.drawString(str,&nbsp;basicX</span><span style="background-color: #F5F5F5; color: #000000;">+</span><span style="background-color: #F5F5F5; color: #000000;">x</span><span style="background-color: #F5F5F5; color: #000000;">*</span><span style="background-color: #F5F5F5; color: #000000;">coordXUnit,&nbsp;basicY</span><span style="background-color: #F5F5F5; color: #000000;">+</span><span style="background-color: #F5F5F5; color: #000000;">(coordMaxY</span><span style="background-color: #F5F5F5; color: #000000;">-</span><span style="background-color: #F5F5F5; color: #000000;">y)</span><span style="background-color: #F5F5F5; color: #000000;">*</span><span style="background-color: #F5F5F5; color: #000000;">coordYUnit);<br />}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="background-color: #F5F5F5; color: #0000FF;">function</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;drawPoint(x,&nbsp;y)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;drawLine(x,&nbsp;y,&nbsp;x,&nbsp;y);<br />}<br /><br /></span><span style="background-color: #F5F5F5; color: #0000FF;">function</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;drawLine(x1,&nbsp;y1,&nbsp;x2,&nbsp;y2)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;jg.drawLine(basicX&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">+</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;x1</span><span style="background-color: #F5F5F5; color: #000000;">*</span><span style="background-color: #F5F5F5; color: #000000;">coordXUnit,&nbsp;basicY&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">+</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;(coordMaxY</span><span style="background-color: #F5F5F5; color: #000000;">-</span><span style="background-color: #F5F5F5; color: #000000;">y1)</span><span style="background-color: #F5F5F5; color: #000000;">*</span><span style="background-color: #F5F5F5; color: #000000;">coordYUnit,&nbsp;basicX&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">+</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;x2</span><span style="background-color: #F5F5F5; color: #000000;">*</span><span style="background-color: #F5F5F5; color: #000000;">coordXUnit,&nbsp;basicY&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">+</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;(coordMaxY</span><span style="background-color: #F5F5F5; color: #000000;">-</span><span style="background-color: #F5F5F5; color: #000000;">y2)</span><span style="background-color: #F5F5F5; color: #000000;">*</span><span style="background-color: #F5F5F5; color: #000000;">coordYUnit);<br />}<br /><br /></span><span style="background-color: #F5F5F5; color: #0000FF;">function</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;drawPolyline(ax,&nbsp;ay)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="background-color: #F5F5F5; color: #0000FF;">var</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;axx&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">=</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;</span><span style="background-color: #F5F5F5; color: #0000FF;">new</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;Array(),&nbsp;ayy&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">=</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;</span><span style="background-color: #F5F5F5; color: #0000FF;">new</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;Array();<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="background-color: #F5F5F5; color: #0000FF;">for</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;(</span><span style="background-color: #F5F5F5; color: #0000FF;">var</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;e&nbsp;</span><span style="background-color: #F5F5F5; color: #0000FF;">in</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;ax)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;axx.push(basicX&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">+</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;(ax[e]&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">*</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;coordXUnit)&nbsp;);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="background-color: #F5F5F5; color: #0000FF;">for</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;(</span><span style="background-color: #F5F5F5; color: #0000FF;">var</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;e&nbsp;</span><span style="background-color: #F5F5F5; color: #0000FF;">in</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;ay)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ayy.push(basicY&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">+</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;(coordMaxY&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">-</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;ay[e])</span><span style="background-color: #F5F5F5; color: #000000;">*</span><span style="background-color: #F5F5F5; color: #000000;">coordYUnit);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;jg.drawPolyline(axx,&nbsp;ayy);<br />}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="background-color: #F5F5F5; color: #0000FF;">function</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;drawCoordinate()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;jg.setColor(</span><span style="background-color: #F5F5F5; color: #000000;">"</span><span style="background-color: #F5F5F5; color: #000000;">#ee8800</span><span style="background-color: #F5F5F5; color: #000000;">"</span><span style="background-color: #F5F5F5; color: #000000;">);<br />&nbsp;&nbsp;&nbsp;&nbsp;drawLine(</span><span style="background-color: #F5F5F5; color: #000000;">0</span><span style="background-color: #F5F5F5; color: #000000;">,&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">0</span><span style="background-color: #F5F5F5; color: #000000;">,&nbsp;coordMaxX,&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">0</span><span style="background-color: #F5F5F5; color: #000000;">);<br />&nbsp;&nbsp;&nbsp;&nbsp;drawLine(</span><span style="background-color: #F5F5F5; color: #000000;">0</span><span style="background-color: #F5F5F5; color: #000000;">,&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">0</span><span style="background-color: #F5F5F5; color: #000000;">,&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">0</span><span style="background-color: #F5F5F5; color: #000000;">,&nbsp;coordMaxY);<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;drawString(</span><span style="background-color: #F5F5F5; color: #000000;">0</span><span style="background-color: #F5F5F5; color: #000000;">,&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">-</span><span style="background-color: #F5F5F5; color: #000000;">2</span><span style="background-color: #F5F5F5; color: #000000;">,&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">-</span><span style="background-color: #F5F5F5; color: #000000;">2</span><span style="background-color: #F5F5F5; color: #000000;">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="background-color: #F5F5F5; color: #0000FF;">for</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;(</span><span style="background-color: #F5F5F5; color: #0000FF;">var</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;i&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">=</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">1</span><span style="background-color: #F5F5F5; color: #000000;">;&nbsp;i&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">&lt;</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;coordMaxX;&nbsp;i</span><span style="background-color: #F5F5F5; color: #000000;">++</span><span style="background-color: #F5F5F5; color: #000000;">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="background-color: #F5F5F5; color: #0000FF;">if</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;(i</span><span style="background-color: #F5F5F5; color: #000000;">%</span><span style="background-color: #F5F5F5; color: #000000;">5</span><span style="background-color: #F5F5F5; color: #000000;">==</span><span style="background-color: #F5F5F5; color: #000000;">0</span><span style="background-color: #F5F5F5; color: #000000;">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="background-color: #F5F5F5; color: #008000;">//</span><span style="background-color: #F5F5F5; color: #008000;">&nbsp;draw&nbsp;grid</span><span style="background-color: #F5F5F5; color: #008000;"><br /></span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jg.setStroke(Stroke.DOTTED);&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;drawLine(i,&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">0</span><span style="background-color: #F5F5F5; color: #000000;">,&nbsp;i,&nbsp;coordMaxY);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="background-color: #F5F5F5; color: #008000;">//</span><span style="background-color: #F5F5F5; color: #008000;">&nbsp;draw&nbsp;mark</span><span style="background-color: #F5F5F5; color: #008000;"><br /></span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jg.setStroke(</span><span style="background-color: #F5F5F5; color: #000000;">0</span><span style="background-color: #F5F5F5; color: #000000;">);&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;drawLine(i,&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">0</span><span style="background-color: #F5F5F5; color: #000000;">,&nbsp;i,&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">-</span><span style="background-color: #F5F5F5; color: #000000;">2</span><span style="background-color: #F5F5F5; color: #000000;">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;drawString(i,&nbsp;i</span><span style="background-color: #F5F5F5; color: #000000;">-</span><span style="background-color: #F5F5F5; color: #000000;">1</span><span style="background-color: #F5F5F5; color: #000000;">,&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">-</span><span style="background-color: #F5F5F5; color: #000000;">3</span><span style="background-color: #F5F5F5; color: #000000;">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="background-color: #F5F5F5; color: #0000FF;">else</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;drawLine(i,&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">0</span><span style="background-color: #F5F5F5; color: #000000;">,&nbsp;i,&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">-</span><span style="background-color: #F5F5F5; color: #000000;">1</span><span style="background-color: #F5F5F5; color: #000000;">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="background-color: #F5F5F5; color: #0000FF;">for</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;(</span><span style="background-color: #F5F5F5; color: #0000FF;">var</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;i&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">=</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">1</span><span style="background-color: #F5F5F5; color: #000000;">;&nbsp;i&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">&lt;</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;coordMaxY&nbsp;;&nbsp;i</span><span style="background-color: #F5F5F5; color: #000000;">++</span><span style="background-color: #F5F5F5; color: #000000;">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="background-color: #F5F5F5; color: #0000FF;">if</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;(i</span><span style="background-color: #F5F5F5; color: #000000;">%</span><span style="background-color: #F5F5F5; color: #000000;">5</span><span style="background-color: #F5F5F5; color: #000000;">==</span><span style="background-color: #F5F5F5; color: #000000;">0</span><span style="background-color: #F5F5F5; color: #000000;">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="background-color: #F5F5F5; color: #008000;">//</span><span style="background-color: #F5F5F5; color: #008000;">&nbsp;draw&nbsp;grid</span><span style="background-color: #F5F5F5; color: #008000;"><br /></span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jg.setStroke(Stroke.DOTTED);&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;drawLine(</span><span style="background-color: #F5F5F5; color: #000000;">0</span><span style="background-color: #F5F5F5; color: #000000;">,&nbsp;i,&nbsp;coordMaxX,&nbsp;i);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="background-color: #F5F5F5; color: #008000;">//</span><span style="background-color: #F5F5F5; color: #008000;">&nbsp;draw&nbsp;mark</span><span style="background-color: #F5F5F5; color: #008000;"><br /></span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jg.setStroke(</span><span style="background-color: #F5F5F5; color: #000000;">0</span><span style="background-color: #F5F5F5; color: #000000;">);&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;drawLine(</span><span style="background-color: #F5F5F5; color: #000000;">0</span><span style="background-color: #F5F5F5; color: #000000;">,&nbsp;i,&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">-</span><span style="background-color: #F5F5F5; color: #000000;">2</span><span style="background-color: #F5F5F5; color: #000000;">,&nbsp;i);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;drawString(i,&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">-</span><span style="background-color: #F5F5F5; color: #000000;">7</span><span style="background-color: #F5F5F5; color: #000000;">,&nbsp;i</span><span style="background-color: #F5F5F5; color: #000000;">+</span><span style="background-color: #F5F5F5; color: #000000;">1</span><span style="background-color: #F5F5F5; color: #000000;">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="background-color: #F5F5F5; color: #0000FF;">else</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;drawLine(</span><span style="background-color: #F5F5F5; color: #000000;">0</span><span style="background-color: #F5F5F5; color: #000000;">,&nbsp;i,&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">-</span><span style="background-color: #F5F5F5; color: #000000;">1</span><span style="background-color: #F5F5F5; color: #000000;">,&nbsp;i);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /><br /></span><span style="background-color: #F5F5F5; color: #0000FF;">function</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;drawPriceLine(night,&nbsp;reset)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="background-color: #F5F5F5; color: #0000FF;">var</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;ax&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">=</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;</span><span style="background-color: #F5F5F5; color: #0000FF;">new</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;Array(),&nbsp;ay&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">=</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;</span><span style="background-color: #F5F5F5; color: #0000FF;">new</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;Array();<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="background-color: #F5F5F5; color: #0000FF;">for</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;(</span><span style="background-color: #F5F5F5; color: #0000FF;">var</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;d</span><span style="background-color: #F5F5F5; color: #000000;">=</span><span style="background-color: #F5F5F5; color: #000000;">1</span><span style="background-color: #F5F5F5; color: #000000;">;&nbsp;d</span><span style="background-color: #F5F5F5; color: #000000;">&lt;</span><span style="background-color: #F5F5F5; color: #000000;">80</span><span style="background-color: #F5F5F5; color: #000000;">;&nbsp;d</span><span style="background-color: #F5F5F5; color: #000000;">++</span><span style="background-color: #F5F5F5; color: #000000;">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ax.push(d);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ay.push(getPriceWithReset(d,&nbsp;night,&nbsp;reset));<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;drawPolyline(ax,&nbsp;ay);<br />}<br /><br /></span><span style="background-color: #F5F5F5; color: #008000;">//</span><span style="background-color: #F5F5F5; color: #008000;">/////////////&nbsp;main&nbsp;section&nbsp;///////////////</span><span style="background-color: #F5F5F5; color: #008000;"><br /></span><span style="background-color: #F5F5F5; color: #0000FF;">var</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;jg&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">=</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;</span><span style="background-color: #F5F5F5; color: #0000FF;">new</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;jsGraphics();<br />jg.setFont(</span><span style="background-color: #F5F5F5; color: #000000;">"</span><span style="background-color: #F5F5F5; color: #000000;">verdana,geneva,sans-serif</span><span style="background-color: #F5F5F5; color: #000000;">"</span><span style="background-color: #F5F5F5; color: #000000;">,&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">"</span><span style="background-color: #F5F5F5; color: #000000;">10px</span><span style="background-color: #F5F5F5; color: #000000;">"</span><span style="background-color: #F5F5F5; color: #000000;">,&nbsp;Font.PLAIN);<br /><br /><br />drawCoordinate();<br />drawString(</span><span style="background-color: #F5F5F5; color: #000000;">"</span><span style="background-color: #F5F5F5; color: #000000;">reset:</span><span style="background-color: #F5F5F5; color: #000000;">"</span><span style="background-color: #F5F5F5; color: #000000;">,&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">0</span><span style="background-color: #F5F5F5; color: #000000;">,&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">-</span><span style="background-color: #F5F5F5; color: #000000;">10</span><span style="background-color: #F5F5F5; color: #000000;">);<br />jg.setColor(</span><span style="background-color: #F5F5F5; color: #000000;">"</span><span style="background-color: #F5F5F5; color: #000000;">#000000</span><span style="background-color: #F5F5F5; color: #000000;">"</span><span style="background-color: #F5F5F5; color: #000000;">);<br />drawPriceLine(</span><span style="background-color: #F5F5F5; color: #000000;">0</span><span style="background-color: #F5F5F5; color: #000000;">,&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">0</span><span style="background-color: #F5F5F5; color: #000000;">);<br />drawString(</span><span style="background-color: #F5F5F5; color: #000000;">"</span><span style="background-color: #F5F5F5; color: #000000;">0</span><span style="background-color: #F5F5F5; color: #000000;">"</span><span style="background-color: #F5F5F5; color: #000000;">,&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">5</span><span style="background-color: #F5F5F5; color: #000000;">,&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">-</span><span style="background-color: #F5F5F5; color: #000000;">10</span><span style="background-color: #F5F5F5; color: #000000;">);<br />jg.setColor(</span><span style="background-color: #F5F5F5; color: #000000;">"</span><span style="background-color: #F5F5F5; color: #000000;">#FF0000</span><span style="background-color: #F5F5F5; color: #000000;">"</span><span style="background-color: #F5F5F5; color: #000000;">);<br />drawPriceLine(</span><span style="background-color: #F5F5F5; color: #000000;">0</span><span style="background-color: #F5F5F5; color: #000000;">,&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">10</span><span style="background-color: #F5F5F5; color: #000000;">);<br />drawString(</span><span style="background-color: #F5F5F5; color: #000000;">"</span><span style="background-color: #F5F5F5; color: #000000;">10</span><span style="background-color: #F5F5F5; color: #000000;">"</span><span style="background-color: #F5F5F5; color: #000000;">,&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">10</span><span style="background-color: #F5F5F5; color: #000000;">,&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">-</span><span style="background-color: #F5F5F5; color: #000000;">10</span><span style="background-color: #F5F5F5; color: #000000;">);<br />jg.setColor(</span><span style="background-color: #F5F5F5; color: #000000;">"</span><span style="background-color: #F5F5F5; color: #000000;">#00FF00</span><span style="background-color: #F5F5F5; color: #000000;">"</span><span style="background-color: #F5F5F5; color: #000000;">);<br />drawPriceLine(</span><span style="background-color: #F5F5F5; color: #000000;">0</span><span style="background-color: #F5F5F5; color: #000000;">,&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">15</span><span style="background-color: #F5F5F5; color: #000000;">);<br />drawString(</span><span style="background-color: #F5F5F5; color: #000000;">"</span><span style="background-color: #F5F5F5; color: #000000;">15</span><span style="background-color: #F5F5F5; color: #000000;">"</span><span style="background-color: #F5F5F5; color: #000000;">,&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">15</span><span style="background-color: #F5F5F5; color: #000000;">,&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">-</span><span style="background-color: #F5F5F5; color: #000000;">10</span><span style="background-color: #F5F5F5; color: #000000;">);<br />jg.setColor(</span><span style="background-color: #F5F5F5; color: #000000;">"</span><span style="background-color: #F5F5F5; color: #000000;">#0000FF</span><span style="background-color: #F5F5F5; color: #000000;">"</span><span style="background-color: #F5F5F5; color: #000000;">);<br />drawPriceLine(</span><span style="background-color: #F5F5F5; color: #000000;">0</span><span style="background-color: #F5F5F5; color: #000000;">,&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">20</span><span style="background-color: #F5F5F5; color: #000000;">);<br />drawString(</span><span style="background-color: #F5F5F5; color: #000000;">"</span><span style="background-color: #F5F5F5; color: #000000;">20</span><span style="background-color: #F5F5F5; color: #000000;">"</span><span style="background-color: #F5F5F5; color: #000000;">,&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">20</span><span style="background-color: #F5F5F5; color: #000000;">,&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">-</span><span style="background-color: #F5F5F5; color: #000000;">10</span><span style="background-color: #F5F5F5; color: #000000;">);<br /><br /></span><span style="background-color: #F5F5F5; color: #008000;">//</span><span style="background-color: #F5F5F5; color: #008000;">///////////////&nbsp;from&nbsp;wangjing&nbsp;to&nbsp;my&nbsp;home,&nbsp;35KM&nbsp;/////////////////</span><span style="background-color: #F5F5F5; color: #008000;"><br /></span><span style="background-color: #F5F5F5; color: #000000;">jg.setColor(</span><span style="background-color: #F5F5F5; color: #000000;">"</span><span style="background-color: #F5F5F5; color: #000000;">#880000</span><span style="background-color: #F5F5F5; color: #000000;">"</span><span style="background-color: #F5F5F5; color: #000000;">);<br /></span><span style="background-color: #F5F5F5; color: #0000FF;">var</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;xp&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">=</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;</span><span style="background-color: #F5F5F5; color: #0000FF;">new</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;Array(),&nbsp;yp&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">=</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;</span><span style="background-color: #F5F5F5; color: #0000FF;">new</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;Array();<br /></span><span style="background-color: #F5F5F5; color: #0000FF;">for</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;(&nbsp;</span><span style="background-color: #F5F5F5; color: #0000FF;">var</span><span style="background-color: #F5F5F5; color: #000000;">&nbsp;i</span><span style="background-color: #F5F5F5; color: #000000;">=</span><span style="background-color: #F5F5F5; color: #000000;">10</span><span style="background-color: #F5F5F5; color: #000000;">;&nbsp;i</span><span style="background-color: #F5F5F5; color: #000000;">&lt;</span><span style="background-color: #F5F5F5; color: #000000;">30</span><span style="background-color: #F5F5F5; color: #000000;">;&nbsp;i</span><span style="background-color: #F5F5F5; color: #000000;">++</span><span style="background-color: #F5F5F5; color: #000000;">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;xp.push(i);<br />&nbsp;&nbsp;&nbsp;&nbsp;yp.push(getPriceWithReset(</span><span style="background-color: #F5F5F5; color: #000000;">35</span><span style="background-color: #F5F5F5; color: #000000;">,&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">0</span><span style="background-color: #F5F5F5; color: #000000;">,&nbsp;i));<br />}<br />drawPolyline(xp,&nbsp;yp);<br /><br />drawString(getPriceWithReset(</span><span style="background-color: #F5F5F5; color: #000000;">35</span><span style="background-color: #F5F5F5; color: #000000;">,&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">0</span><span style="background-color: #F5F5F5; color: #000000;">,&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">15</span><span style="background-color: #F5F5F5; color: #000000;">),&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">0</span><span style="background-color: #F5F5F5; color: #000000;">,&nbsp;</span><span style="background-color: #F5F5F5; color: #000000;">-</span><span style="background-color: #F5F5F5; color: #000000;">20</span><span style="background-color: #F5F5F5; color: #000000;">);<br />jg.paint();<br /></span><span style="background-color: #F5F5F5; color: #008000;">//</span><span style="background-color: #F5F5F5; color: #008000;">--&gt;</span><span style="background-color: #F5F5F5; color: #008000;"><br /></span><span style="color: #0000FF;">&lt;/</span><span style="color: #800000;">script</span><span style="color: #0000FF;">&gt;</span><span style="color: #000000;"><br /></span><span style="color: #0000FF;">&lt;/</span><span style="color: #800000;">body</span><span style="color: #0000FF;">&gt;</span><span style="color: #000000;"><br /></span><span style="color: #0000FF;">&lt;/</span><span style="color: #800000;">html</span><span style="color: #0000FF;">&gt;</span><span style="color: #000000;"><br /></span></span></div>
<p><img width="564" src="http://lh3.ggpht.com/_j1aFcc4gtC0/Sk_PuiktNCI/AAAAAAAABaM/cEHRgFd7le4/s576/sample.JPG" alt="效果图" height="576" /></p>
<p>&nbsp;</p><img src="http://www.cnblogs.com/passos/aggbug/1517051.html?type=1" width="1" height="1" alt=""/><p>　　<a href="http://www.cnblogs.com/passos/archive/2009/07/05/1517051.html#commentform" target="_blank">发表评论</a></p><hr/><p>新闻频道：<a href="http://news.cnblogs.com/n/50924/" target="_blank">赢在设计 电子阅读终端的5个细节</a></p><p>推荐链接：<a href="http://kb.cnblogs.com/zt/windows7/" target="_blank">Windows 7专题发布</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>远去的CodeLib</title><link>http://www.cnblogs.com/passos/archive/2006/06/21/431104.html</link><dc:creator>古月春秋</dc:creator><author>古月春秋</author><pubDate>Tue, 20 Jun 2006 19:48:00 GMT</pubDate><guid>http://www.cnblogs.com/passos/archive/2006/06/21/431104.html</guid><description><![CDATA[<p>　　阅读: 1658 评论: 7 作者: <a href="http://www.cnblogs.com/passos/" target="_blank">古月春秋</a> 发表于 2006-06-21 03:48 <a href="http://www.cnblogs.com/passos/archive/2006/06/21/431104.html" target="_blank">原文链接</a></p>两年前在博客堂上看到fish的blog, 发现了他做的CodeLib. 我发现很喜欢这个工具. 当时的CodeLib是免费的.&nbsp;fish大概应该是是台湾人, 所以当时的CodeLib简体中文的翻译上有些问题, 本着让这个工具更好的想法, 我把一份更新后的简体中文的翻译发给了fish.<br><br>当时让我印象最深刻的就是, fish说做这个工具是"為的是快速了解.NET, 為的是將自己的想法實現, 也為的是希望在生命中留下個東西", 我看了fish做的其它的几个工具, 非常好用. 以一个程序员的角度来看, fish是一个有相当功底的程序员, 做的东西也是努力达到尽善尽美. <br><br>之后有一段时间转Linux/FreeBSD平台去了, 所以也没有怎么用CodeLib. 最近半年由于工作的原因, 又在java平台上做起了东西. 这几天有一个项目非常繁杂, 正在苦恼文档不好记录, 突然就想起了CodeLib. 觉得用它做文档记录也是非常不错的. 从fish的blog找到了CodeLib的下载, 发现开始有Professional和Standard版本之分. 下载了Professional版本, 启动的时候发现了有Unregister的字样. 唔...CodeLib开始要收费了. <br><br>一开始觉得似乎不注册也没有多少的限制, 后来多启动了几次发现, 启动画面上的注册提示框的时间开始变长了. 而且在CodeLib的网站,软件本身都没有说明注册版本和非注册版本之间有什么区别. 我觉得这样一个好的产品, 为了作者的长期努力付出一点money也是正常的事情, 我也打算去买一套. 可惜CodeLib目前在这方面做的不是很好,在CodeLib的网站上发现了购买的方式,似乎只针对国外和台湾. 最让我心凉的是, CodeLib的价格在500-1800台币之间, 远远超过了我的心理预期. 嗯, 我承认我能够接受的价格可能会非常符合国内大陆的现状, 我不了解台湾方面是怎么看待这个问题的, 也不好说什么了. <br><br>平心而论, CodeLib是一个做的非常不错的软件. fish大约是已经实现了当初"为了快速了解.Net,为了将自己的想法实现,也为的是希望在生命中留下个东西"的想法, 现在开始有了其它的想法. 做为个人,我当然希望CodeLib这样好的一个工具能够一直免费下去, 或者留下足够的免费使用的空间. 但如果fish决定要收费的话, 那也是他个人的权利. 只是联想到我以前做过的事情, 小心眼的我突然觉得很不爽.&nbsp; <br><br>心理阴暗的我突然发现CodeLib里面用到的不少第三方库都是按照GPL协议发布的, 这意味着什么呢?
<img src="http://www.cnblogs.com/passos/aggbug/431104.html?type=1" width="1" height="1" alt=""/><p>　　<a href="http://www.cnblogs.com/passos/archive/2006/06/21/431104.html#commentform" target="_blank">发表评论</a></p><hr/><p>新闻频道：<a href="http://news.cnblogs.com/n/50923/" target="_blank">网上种菜网下收 NEC推虚拟现实农场</a></p><p>推荐链接：<a href="http://kb.cnblogs.com/zt/windows7/" target="_blank">Windows 7专题发布</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>vi的一点小经验</title><link>http://www.cnblogs.com/passos/archive/2006/06/12/424137.html</link><dc:creator>古月春秋</dc:creator><author>古月春秋</author><pubDate>Mon, 12 Jun 2006 10:32:00 GMT</pubDate><guid>http://www.cnblogs.com/passos/archive/2006/06/12/424137.html</guid><description><![CDATA[<p>　　阅读: 148 评论: 1 作者: <a href="http://www.cnblogs.com/passos/" target="_blank">古月春秋</a> 发表于 2006-06-12 18:32 <a href="http://www.cnblogs.com/passos/archive/2006/06/12/424137.html" target="_blank">原文链接</a></p><p dir="ltr"><span style="FONT-FAMILY: Courier"><strong>编辑:<br /></strong>把下一行挪到当前行的末尾，在Windows下很简单&mdash;&mdash;在当前行末尾按del或者在下一行的开头按bs就可以了，<br />而在vi里面是要在当前行任意位置按<strong>J</strong>（大写的J，也就是Shift+j）<br /></span></p>
<p dir="ltr"><span style="FONT-FAMILY: Courier"><strong>快速保存推出：</strong><br />很多人习惯用标准的 :wq！&nbsp;保存退出，不过我更喜欢按Shift+z+z，也就是ZZ，一样的。</span></p>
<p dir="ltr"><span style="FONT-FAMILY: Courier"><br /><strong>查找:</strong><br />/sometext 从当前向后找<br />?sometext 从当前向前找 (这两个命令执行后 按n继续向后找 按N继续向前找)<br />:g/sometext/<br /><br />前者直接定位到单词上，后者仅仅是定位到那一行上<br /></span>
<p>&nbsp;</p>
<p><span style="FONT-FAMILY: Courier"><strong>ex命令扩展：</strong></span></p>
<p><span style="FONT-FAMILY: Courier">vi下有一个ex命令模式可以用ex命令来进行快速编辑操作，基本的模式是：</span></p>
<p><span style="FONT-FAMILY: Courier">[范围] g[lobal] /模式/ [ex命令] 在指定的&ldquo;<strong>范围&rdquo;</strong>内，对匹配&ldquo;<strong>模式&rdquo;</strong>的行执行&ldquo;<strong>ex命令&rdquo;</strong></span></p>
<p><span style="FONT-FAMILY: Courier"><span style="FONT-FAMILY: Courier">[范围] v[lobal] /模式/ [ex命令] 在指定的&ldquo;<strong>范围&rdquo;</strong>内，对<strong>不</strong>匹配&ldquo;<strong>模式&rdquo;</strong>的行执行&ldquo;<strong>ex命令&rdquo;</strong></span></span></p>
<ul>
<li><span style="FONT-FAMILY: Courier"><span style="FONT-FAMILY: Courier">如果没有指定&ldquo;范围&rdquo;，则默认为全部。</span></span></li>
<li><span style="FONT-FAMILY: Courier"><span style="FONT-FAMILY: Courier">如果没有制定&ldquo;ex命令&rdquo;，则默认是显示结果。</span></span></li>
<li><span style="FONT-FAMILY: Courier"><span style="FONT-FAMILY: Courier">&ldquo;模式&rdquo;即正则表达式。</span></span></li>
</ul>
<p><span style="FONT-FAMILY: Courier"><span style="FONT-FAMILY: Courier">&ldquo;ex命令&rdquo;在编辑方面，大致有 m（移动）s（替换）d（删除）</span></span></p>
<p><span style="FONT-FAMILY: Courier"><span style="FONT-FAMILY: Courier">例子：</span></span></p>
<p><span style="FONT-FAMILY: Courier"><span style="FONT-FAMILY: Courier">:g/^/m0 会从第一行开始把每一行移动到第一行之后，结果就是所有行逆序反转</span></span></p>
<p><span style="FONT-FAMILY: Courier"><span style="FONT-FAMILY: Courier">:g/127.0.0.1/s/http/ftp/g&nbsp;&nbsp;&nbsp;&nbsp; 对包含127.0.0.1的行，将http替换为ftp</span></span></p>
<p><span style="FONT-FAMILY: Courier"><span style="FONT-FAMILY: Courier"><span style="FONT-FAMILY: Courier"><span style="FONT-FAMILY: Courier">:g/127.0.0.1/s/^/\t/g&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;对包含127.0.0.1的行，每行之前加一个制表符（TAB）</span></span></span></span></p>
<p><span style="FONT-FAMILY: Courier"><span style="FONT-FAMILY: Courier">:g/127.0.0.1/d&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 删除包含127.0.0.1的行</span></span></p>
<p><span style="FONT-FAMILY: Courier"><span style="FONT-FAMILY: Courier"></span></span>&nbsp;</p>
<p><span style="FONT-FAMILY: Courier"><span style="FONT-FAMILY: Courier">如果命令的内容中包含/字符，可以选择转义 \/ 或者把ex的命令分隔符/换成别的字符（例如<a href="mailto:~@#$%">~@#$%</a>等）。</span></span><span style="FONT-FAMILY: Courier"><span style="FONT-FAMILY: Courier">例如要把包含/home的行中的/simon删除：</span></span></p>
<p><span style="FONT-FAMILY: Courier"><span style="FONT-FAMILY: Courier">:g/\/home/ s/\/simon//g&nbsp; 用转义字符输入/</span></span></p>
<p><span style="FONT-FAMILY: Courier"><span style="FONT-FAMILY: Courier">:g#/home#s#/simon##g 用#作为命令分隔符，则字符/可以直接使用了</span></span></p>
<p><span style="FONT-FAMILY: Courier"><span style="FONT-FAMILY: Courier"></span></span>&nbsp;</p>
<p><span style="FONT-FAMILY: Courier"><strong>查找-替换:<br /></strong>通常情况下查找替换的ex命令是<br />:%s/oldtext/newtext/g<br /><br />下面是对这个命令的解释<br />: 表示进入ex的命令模式<br />% 是表示ex命令的source的<strong>范围.</strong>&nbsp;后面的命令在该范围内执行. 该范围有多种表达方式:<br />&nbsp;&nbsp;&nbsp; % 表示全文<br />&nbsp;&nbsp;&nbsp; $ 表示到行尾<br />&nbsp;&nbsp;&nbsp; . 表示当前行<br />&nbsp;&nbsp;&nbsp;&nbsp;x,y 表示从第x行到y行, 例如 10,20s/oldtext/newtext/&nbsp;<br />&nbsp;&nbsp;&nbsp; 此外还可以用其它的ex搜索命令表达范围<br />&nbsp;&nbsp;&nbsp; g/sometext/&nbsp;表示包含sometext的行<br />&nbsp;&nbsp;&nbsp; <br />s 是ex的<strong>替换</strong>命令<br />/.../.../ 表示"搜索-替换"的内容.<br />g 是表示<strong>替换所有</strong>. 默认s只执行一次<br /><br />-= 例子1 =-<br />:10,20s/^/&nbsp;&nbsp;&nbsp;&nbsp;/&nbsp;&nbsp;&nbsp; 把第10到20行的前面加上4个空格<br />可以分解为&nbsp; :&nbsp; 10,20&nbsp; s&nbsp; /^/&nbsp;&nbsp;&nbsp; /<br /><br />-= 例子2 =-<br />:g/small/s/^/#/&nbsp;&nbsp;&nbsp;把所有包含small的行都加上注释#<br />g/small/ 查找包含small的行<br />/^/ 表示第一个非空白字符<br />可以分解为 g/small/&nbsp; &nbsp;s&nbsp; &nbsp;/^/#/<br /></span></p>
<p><span style="FONT-FAMILY: Courier"><br />&nbsp;</span></p>
</p><img src="http://www.cnblogs.com/passos/aggbug/424137.html?type=1" width="1" height="1" alt=""/><p>　　<a href="http://www.cnblogs.com/passos/archive/2006/06/12/424137.html#commentform" target="_blank">发表评论</a></p><hr/><p>新闻频道：<a href="http://news.cnblogs.com/n/50922/" target="_blank">Intel操作系统Moblin 2.1正式版发布</a></p><p>推荐链接：<a href="http://kb.cnblogs.com/zt/windows7/" target="_blank">Windows 7专题发布</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>修正mysqlcc在MySQL 5.0上常报的 Table 'xxx' doesn't exist 错误 </title><link>http://www.cnblogs.com/passos/archive/2006/04/19/379228.html</link><dc:creator>古月春秋</dc:creator><author>古月春秋</author><pubDate>Wed, 19 Apr 2006 07:13:00 GMT</pubDate><guid>http://www.cnblogs.com/passos/archive/2006/04/19/379228.html</guid><description><![CDATA[<p>　　阅读: 736 评论: 3 作者: <a href="http://www.cnblogs.com/passos/" target="_blank">古月春秋</a> 发表于 2006-04-19 15:13 <a href="http://www.cnblogs.com/passos/archive/2006/04/19/379228.html" target="_blank">原文链接</a></p><p style="FONT-FAMILY: Courier">公司上了MySQL 5.0， 随之而来的不是用的有多爽的问题， 而是一直用的很顺手的mysqlcc...不行了， 其表现形式为经常会在状态栏中提示 "[192.168.22.72] ERROR 1146: Table 'rimkpi.1' doesn't exist" 之类的。 选出数据来也不能在表格中直接修改了，到底mysqlcc出了啥问题呢？<br />&nbsp;<br />经过观察，发现在MySQL 5.0上 EXPLAIN 语句的结果和4.1一下的版本不同了。4.1以前的返回的结果第一个字段是tablename， 而4.1以后和5.0的返回的是id号（一般情况下就是1了），第三个字段才是tablename。看来是这里出了问题，不过怎么会在4.1上可以，5.0反而不行了呢？ 很不爽，于是去MySQL的官方网站把mysqlcc的source拖了一份下来，用Source-Navigator跟了一把，发现原来是在CQueryWindow.cpp的execQuery的方法(line 447)中的一段白痴代码：</p>
<p style="FONT-FAMILY: Courier">&nbsp;</p>
<div style="padding-right: 5px; padding-left: 4px; font-size: 13px; padding-bottom: 4px; width: 98%; word-break: break-all; padding-top: 4px; font-family: Courier; background-color: #eeeeee; border: #cccccc 1px solid;"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" /><span style="COLOR: #000000">default_table&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;explain_query</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">row(&nbsp;mysql()</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">mysql()</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">version().major&nbsp;</span><span style="COLOR: #000000">&gt;=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">&amp;&amp;</span><span style="COLOR: #000000">&nbsp;<br /><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;mysql()</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">mysql()</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">version().minor&nbsp;</span><span style="COLOR: #000000">&gt;=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">?</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">&nbsp;:&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">);</span></div>
<p style="FONT-FAMILY: Courier">&nbsp;</p>
<p style="FONT-FAMILY: Courier">如果版本号是4.1或者5.1的话，这个判断的结果是2；而如果版本号是5.0的话，结果就是0了。正确的代码至少也应该是</p>
<div style="padding-right: 5px; padding-left: 4px; font-size: 13px; padding-bottom: 4px; width: 98%; word-break: break-all; padding-top: 4px; font-family: Courier; background-color: #eeeeee; border: #cccccc 1px solid;"><img align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" /><span style="COLOR: #000000">default_table&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;explain_query</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">row(<br />&nbsp;&nbsp;&nbsp; (&nbsp;mysql()</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">mysql()</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">version().major&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">&amp;&amp;</span><span style="COLOR: #000000">&nbsp;mysql()</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">mysql()</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">version().minor&nbsp;</span><span style="COLOR: #000000">&gt;=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;) </span><span style="COLOR: #000000">||</span><span style="COLOR: #000000">&nbsp;<br />&nbsp;&nbsp;&nbsp; (&nbsp;mysql()</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">mysql()</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">version().major&nbsp;</span><span style="COLOR: #000000">&gt;=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">&nbsp;)&nbsp;</span><span style="COLOR: #000000">?</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">&nbsp;:&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">);</span></div>
<p style="FONT-FAMILY: Courier"><br />&nbsp;<br />真是...大概开源就这点好处了。 mysqlcc现在已经不再继续维护了，看来只能自己找到mysql的开发包重新编译个自用版本的mysqlcc了，哈哈</p><img src="http://www.cnblogs.com/passos/aggbug/379228.html?type=1" width="1" height="1" alt=""/><p>　　<a href="http://www.cnblogs.com/passos/archive/2006/04/19/379228.html#commentform" target="_blank">发表评论</a></p><hr/><p>新闻频道：<a href="http://news.cnblogs.com/n/50921/" target="_blank">Windosw 7：低下你的头</a></p><p>推荐链接：<a href="http://kb.cnblogs.com/zt/windows7/" target="_blank">Windows 7专题发布</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>Perl中不寻常的 ?: 运算符</title><link>http://www.cnblogs.com/passos/archive/2006/04/01/364269.html</link><dc:creator>古月春秋</dc:creator><author>古月春秋</author><pubDate>Sat, 01 Apr 2006 07:37:00 GMT</pubDate><guid>http://www.cnblogs.com/passos/archive/2006/04/01/364269.html</guid><description><![CDATA[<p>　　阅读: 148 评论: 0 作者: <a href="http://www.cnblogs.com/passos/" target="_blank">古月春秋</a> 发表于 2006-04-01 15:37 <a href="http://www.cnblogs.com/passos/archive/2006/04/01/364269.html" target="_blank">原文链接</a></p><p><span style="font-family: 'Courier New', Courier, mono;">前几天写一个perl的脚本 在:?运算符上遇到了一个很诡异的问题</span></p>
<p><span style="font-family: 'Courier New', Courier, mono;">
<div style="padding-right: 5px; padding-left: 4px; font-size: 13px; padding-bottom: 4px; width: 98%; word-break: break-all; padding-top: 4px; background-color: #eeeeee; border: #cccccc 1px solid;"><span style="COLOR: #800080">$data</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">{</span><span style="COLOR: #800080">$id</span><span style="COLOR: #000000">}</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">{</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="FONT-WEIGHT: bold; COLOR: #000000">total</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="COLOR: #000000">}&nbsp;</span><span style="COLOR: #000000">?</span><span style="COLOR: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #800080">$data</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">{</span><span style="COLOR: #800080">$id</span><span style="COLOR: #000000">}</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">{</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="FONT-WEIGHT: bold; COLOR: #000000">ratio</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="COLOR: #000000">}&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">sprintf</span><span style="COLOR: #000000">(</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="FONT-WEIGHT: bold; COLOR: #000000">%.2f%%</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800000">100</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800080">$data</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">{</span><span style="COLOR: #800080">$id</span><span style="COLOR: #000000">}</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">{</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="FONT-WEIGHT: bold; COLOR: #000000">succ</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="COLOR: #000000">}&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800080">$data</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">{</span><span style="COLOR: #800080">$id</span><span style="COLOR: #000000">}</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">{</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="FONT-WEIGHT: bold; COLOR: #000000">total</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="COLOR: #000000">})&nbsp;</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #800080">$data</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">{</span><span style="COLOR: #800080">$id</span><span style="COLOR: #000000">}</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">{</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="FONT-WEIGHT: bold; COLOR: #000000">ratio</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="COLOR: #000000">}&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="FONT-WEIGHT: bold; COLOR: #000000">N/A</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="COLOR: #000000">;</span></div>
<br />我的本意是 如果 $data-&gt;{$id}-&gt;{'total'} 未定义则不计算ratio,把ratio赋值为N/A. 这条语句等同于<br />
<div style="padding-right: 5px; padding-left: 4px; font-size: 13px; padding-bottom: 4px; width: 98%; word-break: break-all; padding-top: 4px; background-color: #eeeeee; border: #cccccc 1px solid;"><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(&nbsp;</span><span style="COLOR: #800080">$data</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">{</span><span style="COLOR: #800080">$id</span><span style="COLOR: #000000">}</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">{</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="FONT-WEIGHT: bold; COLOR: #000000">total</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="COLOR: #000000">}&nbsp;)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #800080">$data</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">{</span><span style="COLOR: #800080">$id</span><span style="COLOR: #000000">}</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">{</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="FONT-WEIGHT: bold; COLOR: #000000">ratio</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="COLOR: #000000">}&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">sprintf</span><span style="COLOR: #000000">(</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="FONT-WEIGHT: bold; COLOR: #000000">%.2f%%</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800000">100</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800080">$data</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">{</span><span style="COLOR: #800080">$id</span><span style="COLOR: #000000">}</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">{</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="FONT-WEIGHT: bold; COLOR: #000000">succ</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="COLOR: #000000">}&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800080">$data</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">{</span><span style="COLOR: #800080">$id</span><span style="COLOR: #000000">}</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">{</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="FONT-WEIGHT: bold; COLOR: #000000">total</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="COLOR: #000000">});<br />}&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000">&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #800080">$data</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">{</span><span style="COLOR: #800080">$id</span><span style="COLOR: #000000">}</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">{</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="FONT-WEIGHT: bold; COLOR: #000000">ratio</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="COLOR: #000000">}&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="FONT-WEIGHT: bold; COLOR: #000000">N/A</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="COLOR: #000000">;</span></div>
<br />可奇怪的是,当无论total是否有定义 ratio的结果居然都是N/A. 可后面if&hellip;&hellip;else&hellip;&hellip;的语句是没有问题的,真的是让我百思不得其解.<br />跑去查Perl的文档, 其中对于?:的运算符号的解释是 <br />Ternary ``?:'' is the conditional operator, just as in C. It works much like an if-then-else. If the argument before the ? is true, the argument before the : is returned, otherwise the argument after the : is returned. <br /><br />貌似是<strong>return the argument</strong>, 于是乎 我突然有了一个想法, 在前后都加上了括号&hellip;&hellip;<br />
<div style="padding-right: 5px; padding-left: 4px; font-size: 13px; padding-bottom: 4px; width: 98%; word-break: break-all; padding-top: 4px; background-color: #eeeeee; border: #cccccc 1px solid;"><span style="COLOR: #800080">$data</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">{</span><span style="COLOR: #800080">$id</span><span style="COLOR: #000000">}</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">{</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="FONT-WEIGHT: bold; COLOR: #000000">total</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="COLOR: #000000">}&nbsp;</span><span style="COLOR: #000000">?</span><span style="COLOR: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;(&nbsp;</span><span style="COLOR: #800080">$data</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">{</span><span style="COLOR: #800080">$id</span><span style="COLOR: #000000">}</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">{</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="FONT-WEIGHT: bold; COLOR: #000000">ratio</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="COLOR: #000000">}&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">sprintf</span><span style="COLOR: #000000">(</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="FONT-WEIGHT: bold; COLOR: #000000">%.2f%%</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800000">100</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800080">$data</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">{</span><span style="COLOR: #800080">$id</span><span style="COLOR: #000000">}</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">{</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="FONT-WEIGHT: bold; COLOR: #000000">succ</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="COLOR: #000000">}&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800080">$data</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">{</span><span style="COLOR: #800080">$id</span><span style="COLOR: #000000">}</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">{</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="FONT-WEIGHT: bold; COLOR: #000000">total</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="COLOR: #000000">})&nbsp;)&nbsp;</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;(&nbsp;</span><span style="COLOR: #800080">$data</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">{</span><span style="COLOR: #800080">$id</span><span style="COLOR: #000000">}</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">{</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="FONT-WEIGHT: bold; COLOR: #000000">ratio</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="COLOR: #000000">}&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="FONT-WEIGHT: bold; COLOR: #000000">N/A</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="COLOR: #000000">&nbsp;);</span></div>
<br />&hellip;&hellip;居然就对了. 既然是return the argument, 我就又换了一种方式:<br />
<div style="padding-right: 5px; padding-left: 4px; font-size: 13px; padding-bottom: 4px; width: 98%; word-break: break-all; padding-top: 4px; background-color: #eeeeee; border: #cccccc 1px solid;"><span style="COLOR: #800080">$data</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">{</span><span style="COLOR: #800080">$id</span><span style="COLOR: #000000">}</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">{</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="FONT-WEIGHT: bold; COLOR: #000000">ratio</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="COLOR: #000000">}&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800080">$data</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">{</span><span style="COLOR: #800080">$id</span><span style="COLOR: #000000">}</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">{</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="FONT-WEIGHT: bold; COLOR: #000000">total</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="COLOR: #000000">}&nbsp;</span><span style="COLOR: #000000">?</span><span style="COLOR: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">sprintf</span><span style="COLOR: #000000">(</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="FONT-WEIGHT: bold; COLOR: #000000">%.2f%%</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800000">100</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800080">$data</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">{</span><span style="COLOR: #800080">$id</span><span style="COLOR: #000000">}</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">{</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="FONT-WEIGHT: bold; COLOR: #000000">succ</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="COLOR: #000000">}&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800080">$data</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">{</span><span style="COLOR: #800080">$id</span><span style="COLOR: #000000">}</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">{</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="FONT-WEIGHT: bold; COLOR: #000000">total</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="COLOR: #000000">})&nbsp;</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="FONT-WEIGHT: bold; COLOR: #000000">N/A</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="COLOR: #000000">;</span></div>
<br /><br />虽然后面两种方式都可以理解, 那确实是一种正确的做法. 但为什么第一种方式的结果不对呢? 难道return the argument的意思就是不要在那里做赋值运算吗?&nbsp;<br /><br />为了测试, 我又写了一个简单的小程序<br />
<div style="padding-right: 5px; padding-left: 4px; font-size: 13px; padding-bottom: 4px; width: 98%; word-break: break-all; padding-top: 4px; background-color: #eeeeee; border: #cccccc 1px solid;"><span style="COLOR: #008080">&nbsp;1</span>&nbsp;<span style="COLOR: #008000">#</span><span style="COLOR: #008000">!/usr/bin/perl</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">&nbsp;2</span>&nbsp;<span style="COLOR: #008000"></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">&nbsp;3</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">use</span><span style="COLOR: #000000">&nbsp;strict;<br /></span><span style="COLOR: #008080">&nbsp;4</span>&nbsp;<span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">&nbsp;5</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">my</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800080">$total</span><span style="COLOR: #000000">=</span><span style="COLOR: #800000">1</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">&nbsp;6</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">my</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800080">$rval</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">&nbsp;7</span>&nbsp;<span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">&nbsp;8</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #008000">#</span><span style="COLOR: #008000">###########################</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">&nbsp;9</span>&nbsp;<span style="COLOR: #008000"></span><span style="COLOR: #800080">$total</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">?</span><span style="COLOR: #000000">&nbsp;<br /></span><span style="COLOR: #008080">10</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #800080">$rval</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800080">$total</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">11</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #800080">$rval</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="FONT-WEIGHT: bold; COLOR: #000000">N/A</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">12</span>&nbsp;<span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">13</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">print</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800080">$rval</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="FONT-WEIGHT: bold; COLOR: #000000">\n</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">14</span>&nbsp;<span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">15</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #008000">#</span><span style="COLOR: #008000">###########################</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">16</span>&nbsp;<span style="COLOR: #008000"></span><span style="COLOR: #800080">$total</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">?</span><span style="COLOR: #000000">&nbsp;<br /></span><span style="COLOR: #008080">17</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;(&nbsp;</span><span style="COLOR: #800080">$rval</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800080">$total</span><span style="COLOR: #000000">&nbsp;)&nbsp;</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">18</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;(&nbsp;</span><span style="COLOR: #800080">$rval</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="FONT-WEIGHT: bold; COLOR: #000000">N/A</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="COLOR: #000000">&nbsp;);<br /></span><span style="COLOR: #008080">19</span>&nbsp;<span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">20</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">print</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800080">$rval</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="FONT-WEIGHT: bold; COLOR: #000000">\n</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">21</span>&nbsp;<span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">22</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #008000">#</span><span style="COLOR: #008000">###########################</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">23</span>&nbsp;<span style="COLOR: #008000"></span><span style="COLOR: #800080">$rval</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800080">$total</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">?</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800080">$total</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="FONT-WEIGHT: bold; COLOR: #000000">N/A</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">24</span>&nbsp;<span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">25</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">print</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800080">$rval</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="FONT-WEIGHT: bold; COLOR: #000000">\n</span><span style="FONT-WEIGHT: bold; COLOR: #000000">"</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">26</span>&nbsp;<span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">27</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #008000">#</span><span style="COLOR: #008000">###########################</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">28</span>&nbsp;<span style="COLOR: #008000"></span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #800080">$total</span><span style="COLOR: #000000">)&nbsp;{<br /></span><span style="COLOR: #008080">29</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #800080">$rval</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800080">$total</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">30</span>&nbsp;<span style="COLOR: #000000">}&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000">&nbsp;{<br /></span><span style="COLOR: #008080">31</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #800080">$rval</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="FONT-WEIGHT: bold; COLOR: #000000">N/A</span><span style="FONT-WEIGHT: bold; COLOR: #000000">'</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">32</span>&nbsp;<span style="COLOR: #000000">}<br /></span><span style="COLOR: #008080">33</span>&nbsp;<span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">34</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">print</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800080">$rval</span><span style="COLOR: #000000">;</span></div>
<br />运行的结果显示, 无论第5行给$total赋什么值&hellip;&hellip;包括1, "abc", "true", undef 等,执行的结果第一个print打印出来的都是N/A. 难道 $total? 不等价于 if ($total) 吗? <br /><br />后来偶然的一次机会在PerlChina上问过此问题，才猛然发现原来C和Perl对于:?和=的优先级定义是不同的。在C中，=的优先级高于:?，而Perl中则正好相反。这直接导致了第一种情况对于语句的解释顺序与C截然不同。<br /><br /><br /><br /><br /><br /><br /><br /></span></p><img src="http://www.cnblogs.com/passos/aggbug/364269.html?type=1" width="1" height="1" alt=""/><p>　　<a href="http://www.cnblogs.com/passos/archive/2006/04/01/364269.html#commentform" target="_blank">发表评论</a></p><hr/><p>新闻频道：<a href="http://news.cnblogs.com/n/50920/" target="_blank">Sina App Engine – 新浪的开放云计算平台</a></p><p>推荐链接：<a href="http://kb.cnblogs.com/zt/windows7/" target="_blank">Windows 7专题发布</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>Ubuntu 5.10 下 Apache2 SSL 的配置方法</title><link>http://www.cnblogs.com/passos/archive/2006/02/18/332992.html</link><dc:creator>古月春秋</dc:creator><author>古月春秋</author><pubDate>Sat, 18 Feb 2006 03:52:00 GMT</pubDate><guid>http://www.cnblogs.com/passos/archive/2006/02/18/332992.html</guid><description><![CDATA[<p>　　阅读: 852 评论: 0 作者: <a href="http://www.cnblogs.com/passos/" target="_blank">古月春秋</a> 发表于 2006-02-18 11:52 <a href="http://www.cnblogs.com/passos/archive/2006/02/18/332992.html" target="_blank">原文链接</a></p><SPAN style="FONT-FAMILY: Verdana"><SPAN style="FONT-FAMILY: Arial"><SPAN style="FONT-FAMILY: Verdana"><SPAN style="FONT-FAMILY: Tahoma"><SPAN style="FONT-FAMILY: Verdana"><SPAN style="FONT-FAMILY: Arial"><SPAN style="FONT-FAMILY: Verdana"><SPAN style="FONT-FAMILY: Courier"><SPAN style="FONT-FAMILY: Verdana"><SPAN style="FONT-FAMILY: Arial"><SPAN style="FONT-FAMILY: Verdana"><SPAN style="FONT-FAMILY: Tahoma"><SPAN style="FONT-FAMILY: Verdana"><SPAN style="FONT-FAMILY: Arial"><SPAN style="FONT-FAMILY: Verdana"><SPAN style="FONT-FAMILY: Courier"><SPAN style="FONT-FAMILY: Verdana"><SPAN style="FONT-FAMILY: Arial"><SPAN style="FONT-FAMILY: Verdana"><SPAN style="FONT-FAMILY: Tahoma"><SPAN style="FONT-FAMILY: Verdana"><SPAN style="FONT-FAMILY: Arial"><SPAN style="FONT-FAMILY: Verdana"><SPAN style="FONT-FAMILY: Courier"><SPAN style="FONT-FAMILY: Verdana"><SPAN style="FONT-FAMILY: Arial"><SPAN style="FONT-FAMILY: Verdana"><SPAN style="FONT-FAMILY: Tahoma"><SPAN style="FONT-FAMILY: Verdana"><SPAN style="FONT-FAMILY: Arial"><SPAN style="FONT-FAMILY: Verdana"><SPAN style="FONT-SIZE: 10pt"><SPAN style="FONT-FAMILY: Verdana"><SPAN style="FONT-FAMILY: Arial"><SPAN style="FONT-FAMILY: Verdana"><SPAN style="FONT-FAMILY: Tahoma"><SPAN style="FONT-FAMILY: Verdana"><SPAN style="FONT-FAMILY: Arial"><SPAN style="FONT-FAMILY: Verdana"><SPAN style="FONT-FAMILY: Courier"><SPAN style="FONT-FAMILY: Verdana"><SPAN style="FONT-FAMILY: Arial"><SPAN style="FONT-FAMILY: Verdana"><SPAN style="FONT-FAMILY: Tahoma"><SPAN style="FONT-FAMILY: Verdana"><SPAN style="FONT-FAMILY: Arial"><SPAN style="FONT-FAMILY: Verdana"><SPAN style="FONT-FAMILY: Courier"><SPAN style="FONT-FAMILY: Verdana"><SPAN style="FONT-FAMILY: Arial"><SPAN style="FONT-FAMILY: Verdana"><SPAN style="FONT-FAMILY: Tahoma"><SPAN style="FONT-FAMILY: Verdana"><SPAN style="FONT-FAMILY: Arial"><SPAN style="FONT-FAMILY: Verdana"><SPAN style="FONT-FAMILY: Courier"><SPAN style="FONT-FAMILY: Verdana"><SPAN style="FONT-FAMILY: Arial"><SPAN style="FONT-FAMILY: Verdana"><SPAN style="FONT-FAMILY: Tahoma"><SPAN style="FONT-FAMILY: Verdana"><SPAN style="FONT-FAMILY: Arial"><SPAN style="FONT-FAMILY: Verdana">Ubuntu下Apache的配置文件跟Solaris和FreeBSD下面有点不&#8220;太&#8221;一样，不过本质上还是那些。有的时候我就奇怪，这一个软件在不同的平台上咋能折腾出这么多花样来。<BR><BR>Apache2在Ubuntu系统内的基本情况如下<BR>默认站点在 /var/www/<BR>配置文件在 /etc/apache2/<BR>日志在 /var/log/apache/<BR>启动脚本是 /usr/sin/apache2ctl 或者 /etc/init.d/apache2<BR><BR>安装Apache2<BR>#apt-get install apache2<BR><BR>安装SSL模块<BR><SPAN style="COLOR: #000080">#a2enmod ssl<BR></SPAN><BR>创建默认的SSL证书<BR><SPAN style="COLOR: #000080">#apache2-ssl-certificate<BR></SPAN><BR>复制一份站点配置做为SSL配置的原型<BR><SPAN style="COLOR: #000080">#cp /etc/apache2/sites-available/default /etc/apache2/sites-available/ssl<BR>#ln -s /etc/apache2/sites-available/ssl /etc/apache2/sites-enabled/ssl</SPAN><BR><BR>编辑SSL的配置<BR>#vi /etc/apache2/sites-enabled/ssl<BR><EM>把端口改为443<BR>加入SSL认证配置</EM><BR><EM>其它的根据需要自己定制 与普通配置无异</EM><BR>NameVirtualHost *:<SPAN style="COLOR: #000080">443</SPAN><BR>&lt;VirtualHost *:<SPAN style="COLOR: #000080">443</SPAN>&gt;<BR><SPAN style="COLOR: #000080">&nbsp;&nbsp;&nbsp; ServerSignature On<BR>&nbsp;&nbsp;&nbsp; SSLEngine On<BR>&nbsp;&nbsp;&nbsp; SSLCertificateFile /etc/apache2/ssl/apache.pem</SPAN><BR><BR>&nbsp;&nbsp;&nbsp; ServerAdmin <A href="mailto:webmaster@localhost">webmaster@localhost</A><BR>#[......]<BR><BR>修改普通http方式的配置<BR>#vi /etc/apache2/sites-enabled/default<BR><EM>把端口改为80</EM><BR>NameVirtualHost *:<SPAN style="COLOR: #000080">80</SPAN><BR>&lt;VirtualHost *:<SPAN style="COLOR: #000080">80</SPAN>&gt;<BR>&nbsp;&nbsp;&nbsp; ServerAdmin <A href="mailto:webmaster@localhost">webmaster@localhost</A><BR>#[......]<BR><BR>编辑Apache端口配置，加入443端口（SSL的）<BR>#vi /etc/apache2/ports.conf:<BR>Listen 80<BR>Listen 443<BR><BR>重新载入Apache的配置<BR>#/etc/init.d/apache2 force-reload<BR><BR>以下是SSL的配置文件的示例<BR>
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><SPAN style="COLOR: #000000">NameVirtualHost&nbsp;*:443<BR></SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">VirtualHost&nbsp;</SPAN><SPAN style="COLOR: #ff0000">*:443</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ServerSignature&nbsp;On<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SSLEngine&nbsp;On<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SSLCertificateFile&nbsp;/etc/apache2/ssl/apache.pem<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ServerAdmin&nbsp;webmaster@localhost<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DocumentRoot&nbsp;/var/www/<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">Directory&nbsp;</SPAN><SPAN style="COLOR: #0000ff">/&gt;</SPAN><SPAN style="COLOR: #000000"><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Options&nbsp;FollowSymLinks<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AllowOverride&nbsp;None<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">Directory</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">Directory&nbsp;</SPAN><SPAN style="COLOR: #ff0000">/var/www</SPAN><SPAN style="COLOR: #0000ff">/&gt;</SPAN><SPAN style="COLOR: #000000"><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Options&nbsp;Indexes&nbsp;FollowSymLinks&nbsp;MultiViews<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AllowOverride&nbsp;None<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Order&nbsp;allow,deny<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;allow&nbsp;from&nbsp;all<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;This&nbsp;directive&nbsp;allows&nbsp;us&nbsp;to&nbsp;have&nbsp;apache2's&nbsp;default&nbsp;start&nbsp;page<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;in&nbsp;/apache2-default/,&nbsp;but&nbsp;still&nbsp;have&nbsp;/&nbsp;go&nbsp;to&nbsp;the&nbsp;right&nbsp;place<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;Commented&nbsp;out&nbsp;for&nbsp;Ubuntu<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#RedirectMatch&nbsp;^/$&nbsp;/apache2-default/<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">Directory</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><BR><IMG src="http://www.cnblogs.com/Images/dot.gif">.&nbsp;</SPAN></DIV></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN><img src="http://www.cnblogs.com/passos/aggbug/332992.html?type=1" width="1" height="1" alt=""/><p>　　<a href="http://www.cnblogs.com/passos/archive/2006/02/18/332992.html#commentform" target="_blank">发表评论</a></p><hr/><p>新闻频道：<a href="http://news.cnblogs.com/n/50919/" target="_blank">央视与腾讯合作节日引入企业级QQ 加入互动或爆料</a></p><p>推荐链接：<a href="http://kb.cnblogs.com/zt/windows7/" target="_blank">Windows 7专题发布</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>一行shell命令求素数</title><link>http://www.cnblogs.com/passos/archive/2006/01/26/323617.html</link><dc:creator>古月春秋</dc:creator><author>古月春秋</author><pubDate>Thu, 26 Jan 2006 08:39:00 GMT</pubDate><guid>http://www.cnblogs.com/passos/archive/2006/01/26/323617.html</guid><description><![CDATA[<p>　　阅读: 151 评论: 0 作者: <a href="http://www.cnblogs.com/passos/" target="_blank">古月春秋</a> 发表于 2006-01-26 16:39 <a href="http://www.cnblogs.com/passos/archive/2006/01/26/323617.html" target="_blank">原文链接</a></p><BR>
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; FONT-FAMILY: Lucida Console; BACKGROUND-COLOR: #eeeeee"><SPAN style="COLOR: #000000">echo&nbsp;'2p3p[dl</SPAN><SPAN style="COLOR: #000000">!</SPAN><SPAN style="COLOR: #000000">d2</SPAN><SPAN style="COLOR: #000000">+</SPAN><SPAN style="COLOR: #000000">s</SPAN><SPAN style="COLOR: #000000">!%</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">@l</SPAN><SPAN style="COLOR: #000000">!</SPAN><SPAN style="COLOR: #000000">l</SPAN><SPAN style="COLOR: #000000">^!&lt;</SPAN><SPAN style="COLOR: #000000">#]s#[s</SPAN><SPAN style="COLOR: #000000">/</SPAN><SPAN style="COLOR: #000000">0ds</SPAN><SPAN style="COLOR: #000000">^</SPAN><SPAN style="COLOR: #000000">]s@[p]s</SPAN><SPAN style="COLOR: #000000">&amp;</SPAN><SPAN style="COLOR: #000000">[ddvs</SPAN><SPAN style="COLOR: #000000">^</SPAN><SPAN style="COLOR: #000000">3s</SPAN><SPAN style="COLOR: #000000">!</SPAN><SPAN style="COLOR: #000000">l#x0</SPAN><SPAN style="COLOR: #000000">&lt;&amp;</SPAN><SPAN style="COLOR: #000000">2</SPAN><SPAN style="COLOR: #000000">+</SPAN><SPAN style="COLOR: #000000">l.x]ds.x'</SPAN><SPAN style="COLOR: #000000">|</SPAN><SPAN style="COLOR: #000000">dc</SPAN></DIV><BR>这个命令是用unix下的计算器dc求素数。dc是一个简单的基于堆栈的计算器程序，虽然简单但是可以实现&#8220;几乎&#8221;所有计算机可能实现的算法。关于这条命令的详细解释，等我弄明白了再写了。<img src="http://www.cnblogs.com/passos/aggbug/323617.html?type=1" width="1" height="1" alt=""/><p>　　<a href="http://www.cnblogs.com/passos/archive/2006/01/26/323617.html#commentform" target="_blank">发表评论</a></p><hr/><p>新闻频道：<a href="http://news.cnblogs.com/n/50918/" target="_blank">百度“凤巢”启用 形式大于内容？</a></p><p>推荐链接：<a href="http://kb.cnblogs.com/zt/windows7/" target="_blank">Windows 7专题发布</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>Boot FreeBSD from Windows boot loader</title><link>http://www.cnblogs.com/passos/archive/2005/11/06/270113.html</link><dc:creator>古月春秋</dc:creator><author>古月春秋</author><pubDate>Sun, 06 Nov 2005 09:21:00 GMT</pubDate><guid>http://www.cnblogs.com/passos/archive/2005/11/06/270113.html</guid><description><![CDATA[<p>　　阅读: 209 评论: 0 作者: <a href="http://www.cnblogs.com/passos/" target="_blank">古月春秋</a> 发表于 2005-11-06 17:21 <a href="http://www.cnblogs.com/passos/archive/2005/11/06/270113.html" target="_blank">原文链接</a></p><DIV>Very easy. <BR><BR>Method A:<BR><BR>After the installation of FreeBSD ( one harddisc diffrent paricular mode).</DIV>
<DIV>1. Copy the /boot/boot1 (in Install Disc) to C:\</DIV>
<DIV>2. Edit c:\boot.ini, add follow line in [operating systems] section:</DIV>
<DIV>C:\boot1="FreeBSD"</DIV>
<DIV>&nbsp;</DIV>
<DIV>Done.<BR><BR><BR>Method B:<BR>After the installation of FreeBSD (&nbsp;any mode).<BR>1. boot in to freebsd<BR>2. #dd if=/dev/da0s3 /of=/bsdboot bs=512 count=1<BR>3. copy the file bsdboot to your windows C:\<BR>4. edit C:\boot.ini add C:\boot1="FreeBSD" in [operating systems] section.<BR><BR>Method C:<BR>After the installation of FreeBSD (&nbsp;any mode).<BR>1. Use WinHEX to get the first 512 byte from your BSD installed partition.<BR>2. Save it to a file named bsdboot<BR>3. like Method B</DIV><img src="http://www.cnblogs.com/passos/aggbug/270113.html?type=1" width="1" height="1" alt=""/><p>　　<a href="http://www.cnblogs.com/passos/archive/2005/11/06/270113.html#commentform" target="_blank">发表评论</a></p><hr/><p>新闻频道：<a href="http://news.cnblogs.com/n/50917/" target="_blank">桌面Linux系统排名：Ubuntu冠军SUSE第二</a></p><p>推荐链接：<a href="http://kb.cnblogs.com/zt/windows7/" target="_blank">Windows 7专题发布</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>Turtles - So Happy Together</title><link>http://www.cnblogs.com/passos/archive/2005/09/21/240846.html</link><dc:creator>古月春秋</dc:creator><author>古月春秋</author><pubDate>Tue, 20 Sep 2005 18:38:00 GMT</pubDate><guid>http://www.cnblogs.com/passos/archive/2005/09/21/240846.html</guid><description><![CDATA[<p>　　阅读: 248 评论: 0 作者: <a href="http://www.cnblogs.com/passos/" target="_blank">古月春秋</a> 发表于 2005-09-21 02:38 <a href="http://www.cnblogs.com/passos/archive/2005/09/21/240846.html" target="_blank">原文链接</a></p><P><BR><EMBED style="WIDTH: 200px; HEIGHT: 45px" name=MediaPlayer1 pluginspage=http://www.microsoft.com/Windows/MediaPlayer src="http://www.cnblogs.com/Files/passos/Turtles - So Happy Together.mp3" width=200 height=45 type=application/x-mplayer2 autostart="1" showcontrols="1"></EMBED>&nbsp;<BR>Turtles<BR>So Happy Together</P>
<P>Imagine me and you, I do<BR>I think about you day and night<BR>It's only right<BR>To think about the girl you love<BR>And hold her tight<BR>So happy together<BR>If I should call you up<BR>Invest a dime<BR>And you say you belong to me<BR>And ease my mind<BR>Imagine how the world could be<BR>So very fine<BR>So happy together</P>
<P>{Refrain}<BR>I can't see me loving nobody but you<BR>For all my life<BR>When you're with me<BR>Baby the skies will be blue<BR>For all my life<BR>Me and you<BR>And you and me<BR>No matter how they tossed the dice<BR>It had to be<BR>The only one for me is you<BR>And you for me<BR>So happy together</P>
<P>{Refrain}</P>
<P>Me and you<BR>And you and me<BR>No matter how they tossed the dice<BR>It had to be<BR>The only one for me is you<BR>And you for me<BR>So happy together<BR>So happy together<BR>How is the weather<BR>So happy together<BR>We're happy together<BR>So happy together...</P>
<P><BR>&nbsp;</P><img src="http://www.cnblogs.com/passos/aggbug/240846.html?type=1" width="1" height="1" alt=""/><p>　　<a href="http://www.cnblogs.com/passos/archive/2005/09/21/240846.html#commentform" target="_blank">发表评论</a></p><hr/><p>新闻频道：<a href="http://news.cnblogs.com/n/50916/" target="_blank">Android步入外太空：互联网科学家使Android进行DTN协议的开发</a></p><p>推荐链接：<a href="http://kb.cnblogs.com/zt/windows7/" target="_blank">Windows 7专题发布</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>关于IoC、低耦合、配置文件及其本质意义的思考</title><link>http://www.cnblogs.com/passos/archive/2005/09/13/235741.html</link><dc:creator>古月春秋</dc:creator><author>古月春秋</author><pubDate>Tue, 13 Sep 2005 02:38:00 GMT</pubDate><guid>http://www.cnblogs.com/passos/archive/2005/09/13/235741.html</guid><description><![CDATA[<p>　　阅读: 530 评论: 1 作者: <a href="http://www.cnblogs.com/passos/" target="_blank">古月春秋</a> 发表于 2005-09-13 10:38 <a href="http://www.cnblogs.com/passos/archive/2005/09/13/235741.html" target="_blank">原文链接</a></p>看了一篇关于IoC的Blog《<A id=_f11e706e13bde100_HomePageDays_DaysList__ctl2_DayItem_DayList__ctl0_TitleUrl title=你真的了解Ioc与AOP吗？ href="http://www.cnblogs.com/zhenyulu/archive/2005/09/10/234181.html" target=_blank>你真的了解Ioc与AOP吗？</A>》，很是有点感想。<BR>偶对IoC并不是非常的了解，但是感觉它可以通过两种方式来改善耦合度关系：<BR>1，通过&#8220;注入&#8221;实现功能替换。简单的&#8220;注入&#8221;，可以通过seter或者Constructor来实现。之后可以在运行期的装配阶段把各个注入类和宿主类组合起来。简单&#8220;注入&#8221;的缺点是，还是要将具体的注入类写死在装配方法中。<BR>2，为了解决简单注入的问题，有人利用反射+配置文件实现了注入，现在只要修改配置文件就可以实现注入类的替换了。<BR><BR>所谓的&#8220;注入&#8221;，可以理解为这样一个过程：把宿主类中要在运行期决议/替换的功能单独作为一个类来实现，然后把这个类的抽象（抽象类或者接口）作为宿主类的一个接口（通过seter或者constructor来赋值），最后在运行期把一个实现具体功能的实例赋给宿主类。上述的实现，宿主类要显式的标明注入类的接口类型，并且在装配阶段要显式的new出注入类，然后赋给宿主类的对应接口。这种事情，好处自然是有的了，就好像AbstractFactory或者Builder模式：只公开接口，把具体的实现抽离出来，这样可以方便的实现具体实现的替换。可是仔细看一下，这样的实现，耦合度从代码中转移到了装配类中。<BR><BR>而配置文件的方式，把类的装配工作以配置文件的形式实现了，这样不用修改代码、编译就可以实现注入类的替换。这样做的好处更是有的，不管怎么说，能够不修改代码实现功能的替换至少在发布方面是能够带来不错的效果。至于在代码方面能够带来多大程度上的好处，我想可能还是要视环境和应用的场合来定吧。毕竟这样做的复杂程度要比简单实现高很多了。而且这样的实现，事实上是把耦合从装配方法中转移到了配置文件中。<BR><BR>其实在IoC实现中花了很多的力气来做类型的匹配工作&#8230;&#8230;宿主类和注入类的接口对应，这个是强类型语言所不能避免的。既然如此的话，那么无类型的动态语言实现IoC应该是非常的容易并且效果应该是不错的——可是同时负面效果就是运行期才能进行类型的识别和匹配工作容易出错，但目前似乎配置文件的方式也无法避免这个问题。<BR><BR>进一步的，配置文件其实也是可以演变、进化的。首先就是配置文件中的内容是否可以以元数据的形式出现？又或者以一个程序集的形式出现？该程序集其实就是配置文件或者元数据功能上的替代者——虽然修改不方便了，但是同时带来了安全上的保证。可是这样一来，我们又要面对编译的问题。呵呵，两难吧。<BR><BR>当下形形色色的配置文件已经泛滥成灾了，怪不得RoR要火爆起来。其实就配置文件来说，本质上是为了把耦合的位置从不可修改的编译代码中转移到一个可修改的文本文件中，这样就可以在替换部分功能的时候免除掉&#8220;编译&#8221;这个环节，为的就是这个效果吧（不知道这样说是否正确）。 <BR>虽然可以不用修改代码了但还是要修改配置文件，我个人感觉这本人本质上其实还是一回事。话说回来，如果这个趋势发展到极致，我想可能大家可以只用配置文件来写程序了，宿主程序则退化为一个配置文件的解释器——事实上，这个也是可以实现的，Eclipse和SharpDevelop的宿主程序已经是这样的一种东西了。XML的配置文件加一个解释器不就是一个新的语言么？如果不用XML做配置文件，而是用类似脚本的方式来定义配置，那么这个配置文件其实就是一个解释型的语言了。然后，为了提高这种配置方式程序的效率&#8230;&#8230; 我们兜了一个很大的圈子之后又转回到编译语言上来了。从这个角度上来说，这是一个平衡度的问题。 从更高一点的角度来看，这是一个螺旋式进化、演变、上升的过程。从现实的角度来看，未来二十年应该是解释语言和动态语言的天下。<BR><BR>退后一步来看这一切，我们当初为什么要OO，是为了降低大型软件中面向过程的封装问题导致的复杂性。有了OO之后，发现一切并不是那么的美好，为了降低对象之间的耦合度、增加灵活性，于是有了设计模式。人们应用了设计模式，发现调试不方便了，复杂性又提高了。IoC可以理解为是模式的一种吧，但是换一个角度来看，它不就是一个回调函数的OO方式的实现吗？我们果然是又转回了起点，下一步又要转向哪里呢？<BR><BR>这其实，都是为了解决软件的一种复杂性而导致的另外一种复杂性，所不同的就是人们可以选择自己更能够接收哪种复杂性。<img src="http://www.cnblogs.com/passos/aggbug/235741.html?type=1" width="1" height="1" alt=""/><p>　　<a href="http://www.cnblogs.com/passos/archive/2005/09/13/235741.html#commentform" target="_blank">发表评论</a></p><hr/><p>新闻频道：<a href="http://news.cnblogs.com/n/50915/" target="_blank">李开复：创新工场钱已经多得用不完 年底开工</a></p><p>推荐链接：<a href="http://kb.cnblogs.com/zt/windows7/" target="_blank">Windows 7专题发布</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item></channel></rss>
