<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>I am LAZY bones ? &#187; 流水帐</title>
	<atom:link href="http://luy.li/category/journal/feed/" rel="self" type="application/rss+xml" />
	<link>http://luy.li</link>
	<description>all linux</description>
	<lastBuildDate>Mon, 30 Aug 2010 01:26:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>湿地博物馆</title>
		<link>http://luy.li/2010/08/16/wetlandmuseum/</link>
		<comments>http://luy.li/2010/08/16/wetlandmuseum/#comments</comments>
		<pubDate>Mon, 16 Aug 2010 04:41:38 +0000</pubDate>
		<dc:creator>bones7456</dc:creator>
				<category><![CDATA[流水帐]]></category>

		<guid isPermaLink="false">http://luy.li/?p=1670</guid>
		<description><![CDATA[话说，自从我老婆孩子从老家回到杭州以后，原来刚好够我们小两口住的那个小房间，显然是住不下了。于是只能张罗着搬家和添置一些生活用品，到现在，虽然清苦（房子还是不大，也比较破旧），也总算慢慢安定下来了。 之所以在这里先说我搬家的事情，是因为我现在的住处比较偏远，靠近西溪湿地。然后，附近有一个“中国湿地博物馆”，大热天的，空调足，又免费，所以可以算是避暑胜地。今天──好吧，已经是昨天了（昨晚写这日志由于网络不好没写完）──终于有个周末可以空下来了，就去这博物馆玩了。 由于此博物馆并没有禁止拍照，所以我就拍了些照片回来，供大家观赏，以下图片都可以点击看大图~ 这是门口： 入口附近： 这里有些传感器，上面画着各种动物的脚印，踩上去，会播放对应动物的声音： 门口的导览图： 前台： 进去以后，在前台附近的交互式导览图，地图的各部分可以点击查看详细，做得还不错： 标本： 这些长方形的不是水缸，而都是触摸屏，介绍地图对应位置的湿地现状和保护情况等： 很有个性的玻璃顶棚，上面种满了绿色植物： 又是标本： 里面N多这样的大尺寸显示屏： 梯田的模型： 这个玩意对准模型里的某些物品，就可以看到一段相应的介绍录像，比较炫，不过实际上体验不怎么样： 和谐： 从楼上往下看： 这是个体验影院，里面会循环播放一段9分钟的介绍湿地的视频，屏幕超宽，估计得有10m以上吧，形成一个柱面的145度左右的弧。 里面有很多利用投影仪来营造气氛的装置： 这些小时候常用的工具，以比我想象中还要快的速度进了博物馆： 这个可以算是最有个性的消防栓么？ 这个得说明一下：不是我把它搞成这样的，是一个小萝莉，对着触摸屏瞎点瞎点，导致那Flash播放器崩溃了，才出来开始菜单什么的。。。可惜那电脑不能上网~ 又是一个用win+IE的系统~ 什么专题展厅： 西溪湿地模型： 标本： 窗外的风景： 这个是一套介绍生物常识的系统，中间的滑杆和放大镜用来选择片断，然后下面的显示器会播放。另外上面那个罩子，是用来感知下面是否有人的，如果播放过程中，你就闪人了，它就会把声音停掉，这样可以避免影响到旁边的其他机器和观众；另外这个罩子应该可以把声场固定在下面的一小块范围内，也是避免相互影响。个人觉得，是个不错的设计： 可以有部分互动的模型： 好，图片就贴上面这么多了，是不是有点意思呢？如果你也在杭州的话，不妨也去看看，地点是在天目山路和紫金港路的交叉口，哈哈。 另外这博物馆好像还有个新浪的官方blog，虽然不怎么更新。]]></description>
			<content:encoded><![CDATA[<p>话说，自从我老婆孩子从老家回到杭州以后，原来刚好够我们小两口住的那个小房间，显然是住不下了。于是只能张罗着搬家和添置一些生活用品，到现在，虽然清苦（房子还是不大，也比较破旧），也总算慢慢安定下来了。<br />
之所以在这里先说我搬家的事情，是因为我现在的住处比较偏远，靠近西溪湿地。然后，附近有一个“中国湿地博物馆”，大热天的，空调足，又免费，所以可以算是避暑胜地。今天──好吧，已经是昨天了（昨晚写这日志由于网络不好没写完）──终于有个周末可以空下来了，就去这博物馆玩了。<br />
由于此博物馆并没有禁止拍照，所以我就拍了些照片回来，供大家观赏，以下图片都可以点击看大图~<br />
这是门口：<br />
<a href="http://luy.li/data/wetland/S7305874_.JPG"><img src="http://luy.li/data/wetland/S7305874_t.JPG"></a></br><br />
<span id="more-1670"></span><br />
入口附近：<br />
<a href="http://luy.li/data/wetland/S7305880_.JPG"><img src="http://luy.li/data/wetland/S7305880_t.JPG"></a></br><br />
这里有些传感器，上面画着各种动物的脚印，踩上去，会播放对应动物的声音：<br />
<a href="http://luy.li/data/wetland/S7305882_.JPG"><img src="http://luy.li/data/wetland/S7305882_t.JPG"></a></br><br />
门口的导览图：<br />
<a href="http://luy.li/data/wetland/S7305883_.JPG"><img src="http://luy.li/data/wetland/S7305883_t.JPG"></a></br><br />
前台：<br />
<a href="http://luy.li/data/wetland/S7305885_.JPG"><img src="http://luy.li/data/wetland/S7305885_t.JPG"></a></br><br />
进去以后，在前台附近的交互式导览图，地图的各部分可以点击查看详细，做得还不错：<br />
<a href="http://luy.li/data/wetland/S7305887_.JPG"><img src="http://luy.li/data/wetland/S7305887_t.JPG"></a></br><br />
<a href="http://luy.li/data/wetland/S7305888_.JPG"><img src="http://luy.li/data/wetland/S7305888_t.JPG"></a></br><br />
标本：<br />
<a href="http://luy.li/data/wetland/S7305890_.JPG"><img src="http://luy.li/data/wetland/S7305890_t.JPG"></a></br><br />
<a href="http://luy.li/data/wetland/S7305891_.JPG"><img src="http://luy.li/data/wetland/S7305891_t.JPG"></a></br><br />
这些长方形的不是水缸，而都是触摸屏，介绍地图对应位置的湿地现状和保护情况等：<br />
<a href="http://luy.li/data/wetland/S7305894_.JPG"><img src="http://luy.li/data/wetland/S7305894_t.JPG"></a></br><br />
很有个性的玻璃顶棚，上面种满了绿色植物：<br />
<a href="http://luy.li/data/wetland/S7305895_.JPG"><img src="http://luy.li/data/wetland/S7305895_t.JPG"></a></br><br />
<a href="http://luy.li/data/wetland/S7305904_.JPG"><img src="http://luy.li/data/wetland/S7305904_t.JPG"></a></br><br />
又是标本：<br />
<a href="http://luy.li/data/wetland/S7305905_.JPG"><img src="http://luy.li/data/wetland/S7305905_t.JPG"></a></br><br />
里面N多这样的大尺寸显示屏：<br />
<a href="http://luy.li/data/wetland/S7305909_.JPG"><img src="http://luy.li/data/wetland/S7305909_t.JPG"></a></br><br />
<a href="http://luy.li/data/wetland/S7305911_.JPG"><img src="http://luy.li/data/wetland/S7305911_t.JPG"></a></br><br />
梯田的模型：<br />
<a href="http://luy.li/data/wetland/S7305915_.JPG"><img src="http://luy.li/data/wetland/S7305915_t.JPG"></a></br><br />
这个玩意对准模型里的某些物品，就可以看到一段相应的介绍录像，比较炫，不过实际上体验不怎么样：<br />
<a href="http://luy.li/data/wetland/S7305917_.JPG"><img src="http://luy.li/data/wetland/S7305917_t.JPG"></a></br><br />
和谐：<br />
<a href="http://luy.li/data/wetland/S7305919_.JPG"><img src="http://luy.li/data/wetland/S7305919_t.JPG"></a></br><br />
<a href="http://luy.li/data/wetland/S7305923_.JPG"><img src="http://luy.li/data/wetland/S7305923_t.JPG"></a></br><br />
从楼上往下看：<br />
<a href="http://luy.li/data/wetland/S7305924_.JPG"><img src="http://luy.li/data/wetland/S7305924_t.JPG"></a></br><br />
这是个体验影院，里面会循环播放一段9分钟的介绍湿地的视频，屏幕超宽，估计得有10m以上吧，形成一个柱面的145度左右的弧。<br />
<a href="http://luy.li/data/wetland/S7305925_.JPG"><img src="http://luy.li/data/wetland/S7305925_t.JPG"></a></br><br />
里面有很多利用投影仪来营造气氛的装置：<br />
<a href="http://luy.li/data/wetland/S7305930_.JPG"><img src="http://luy.li/data/wetland/S7305930_t.JPG"></a></br><br />
这些小时候常用的工具，以比我想象中还要快的速度进了博物馆：<br />
<a href="http://luy.li/data/wetland/S7305932_.JPG"><img src="http://luy.li/data/wetland/S7305932_t.JPG"></a></br><br />
<a href="http://luy.li/data/wetland/S7305933_.JPG"><img src="http://luy.li/data/wetland/S7305933_t.JPG"></a></br><br />
这个可以算是最有个性的消防栓么？<br />
<a href="http://luy.li/data/wetland/S7305936_.JPG"><img src="http://luy.li/data/wetland/S7305936_t.JPG"></a></br><br />
这个得说明一下：不是我把它搞成这样的，是一个小萝莉，对着触摸屏瞎点瞎点，导致那Flash播放器崩溃了，才出来开始菜单什么的。。。可惜那电脑不能上网~<br />
<a href="http://luy.li/data/wetland/S7305938_.JPG"><img src="http://luy.li/data/wetland/S7305938_t.JPG"></a></br><br />
又是一个用win+IE的系统~<br />
<a href="http://luy.li/data/wetland/S7305941_.JPG"><img src="http://luy.li/data/wetland/S7305941_t.JPG"></a></br><br />
什么专题展厅：<br />
<a href="http://luy.li/data/wetland/S7305944_.JPG"><img src="http://luy.li/data/wetland/S7305944_t.JPG"></a></br><br />
西溪湿地模型：<br />
<a href="http://luy.li/data/wetland/S7305950_.JPG"><img src="http://luy.li/data/wetland/S7305950_t.JPG"></a></br><br />
标本：<br />
<a href="http://luy.li/data/wetland/S7305951_.JPG"><img src="http://luy.li/data/wetland/S7305951_t.JPG"></a></br><br />
<a href="http://luy.li/data/wetland/S7305952_.JPG"><img src="http://luy.li/data/wetland/S7305952_t.JPG"></a></br><br />
窗外的风景：<br />
<a href="http://luy.li/data/wetland/S7305954_.JPG"><img src="http://luy.li/data/wetland/S7305954_t.JPG"></a></br><br />
这个是一套介绍生物常识的系统，中间的滑杆和放大镜用来选择片断，然后下面的显示器会播放。另外上面那个罩子，是用来感知下面是否有人的，如果播放过程中，你就闪人了，它就会把声音停掉，这样可以避免影响到旁边的其他机器和观众；另外这个罩子应该可以把声场固定在下面的一小块范围内，也是避免相互影响。个人觉得，是个不错的设计：<br />
<a href="http://luy.li/data/wetland/S7305970_.JPG"><img src="http://luy.li/data/wetland/S7305970_t.JPG"></a></br><br />
可以有部分互动的模型：<br />
<a href="http://luy.li/data/wetland/S7305973_.JPG"><img src="http://luy.li/data/wetland/S7305973_t.JPG"></a></br></p>
<p>好，图片就贴上面这么多了，是不是有点意思呢？如果你也在杭州的话，不妨也去看看，地点是在天目山路和紫金港路的交叉口，哈哈。<br />
另外这博物馆好像还有个<a href="http://blog.sina.com.cn/wetlandmuseum">新浪的官方blog</a>，虽然不怎么更新。</p>
]]></content:encoded>
			<wfw:commentRss>http://luy.li/2010/08/16/wetlandmuseum/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>perl 的特色</title>
		<link>http://luy.li/2010/07/25/special-perl/</link>
		<comments>http://luy.li/2010/07/25/special-perl/#comments</comments>
		<pubDate>Sun, 25 Jul 2010 07:24:54 +0000</pubDate>
		<dc:creator>bones7456</dc:creator>
				<category><![CDATA[流水帐]]></category>

		<guid isPermaLink="false">http://luy.li/?p=1662</guid>
		<description><![CDATA[由于工作中偶尔要接触一下perl，所以我花了点时间，很粗略地看了一遍flamephoenix的perl中文教程。本文就是我在看的过程中记录下来的点点滴滴，对大家不一定有用，但是也可以让不会perl的同学对其有个直观的印象。perl果然是个非主流，哈哈。 字符串有很不同的转义，可以转义大小写。 $a = "T\LHIS IS A \ESTRING"; # same as "This is a STRING" 比较操作符有“比较”这个操作，整数是 ，字符串是 cmp ，会返回 1,0,-1 字符串能进线自加（++）操作，而且逢zZ9会进位，但是不能自减。 字符串的重复操作符是x（小写字母x），对应的python操作符是 * （星号） 条件操作符可以用来选择变量： $condvar == 43 ? $var1 : $var2 = 14; 数组变量要有个 @ 头，而且可以和普通变量重名，列表用的是()，对应python里是 []。 列表可以用..表示范围： (2, 5..7, 11) = (2, 5, 6, 7, 11) 更神奇的是，还可以用于实数： (2.1..5.3) = (2.1, 3.1 ,4.1, 5.1) [...]]]></description>
			<content:encoded><![CDATA[<p>由于工作中偶尔要接触一下perl，所以我花了点时间，很粗略地看了一遍flamephoenix的perl中文教程。本文就是我在看的过程中记录下来的点点滴滴，对大家不一定有用，但是也可以让不会perl的同学对其有个直观的印象。perl果然是个非主流，哈哈。</p>
<p>字符串有很不同的转义，可以转义大小写。<br />
<code> $a = "T\LHIS IS A \ESTRING"; # same as "This is a STRING"</code></p>
<p>比较操作符有“比较”这个操作，整数是 <=> ，字符串是 cmp ，会返回 1,0,-1</p>
<p>字符串能进线自加（++）操作，而且逢zZ9会进位，但是不能自减。</p>
<p>字符串的重复操作符是x（小写字母x），对应的python操作符是 * （星号）</p>
<p>条件操作符可以用来选择变量：<br />
<code>$condvar == 43 ? $var1 : $var2 = 14;</code></p>
<p>数组变量要有个 @ 头，而且可以和普通变量重名，列表用的是()，对应python里是 []。</p>
<p>列表可以用..表示范围： (2, 5..7, 11) = (2, 5, 6, 7, 11) 更神奇的是，还可以用于实数： (2.1..5.3) = (2.1, 3.1 ,4.1, 5.1) 和字符串 (&#8220;aaa&#8221;..&#8221;aad&#8221;) = (&#8220;aaa&#8221;,&#8221;aab&#8221;, &#8220;aac&#8221;, &#8220;aad&#8221;) ，还可以包含变量： ($var1..$var2+5)</p>
<p>列表赋值给简单变量，会得到列表的长度。。。</p>
<p>打开文件的模式（读、写或追加）是通过在文件名前加前缀指定的，所以，我不知道如果要只读打开文件名是 “>“ 的文件该怎么写。</p>
<p>文件测试操作更像bash的风格。</p>
<p>@ARGV[0] 就是第一个参数，而不是程序名本身。</p>
<p>有个 <> 操作符，可以直接按参数顺序读取指定的文件，这个就得实践过才能体会了。</p>
<p>可以像操作普通文件那样操作管道。而且也是用的open函数。</p>
<p>模式（也就是 正则表达式）操作是内置的，而不用像python那样import re。这点倒是比较像javascript。</p>
<p>有类似 awk 的模式匹配操作符。比如： $result = $var =~ /abc/; 这个用在逻辑判断里很方便。</p>
<p>模式的定界符缺省是/，但是可以用m来自定义。</p>
<p>模式匹配以后可以用 $1 $2 $&#038; 等引用匹配到的组。</p>
<p>模式匹配操作可以放在while里循环，还可以pos定位。</p>
<p>elsif 也比较bash。</p>
<p>有 foreach 的语法。foreach语法里的 循环变量 是 循环内部 的局部变量；在循环里改变循环变量，会修改数组的对应项。。。</p>
<p>last就是break；next就是continue；还有个redo。循环控制很强大。</p>
<p>以上两点，可以用这个小程序体会一下：</p>

<div class="wp_syntax"><div class="code"><pre class="perl" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/usr/bin/env perl</span>
&nbsp;
<span style="color: #0000ff;">@list</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">2</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">3</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">4</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">5</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot;@list<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">foreach</span> <span style="color: #0000ff;">$temp</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">@list</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot;temp=$temp<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$temp</span><span style="color: #339933;">==</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #0000ff;">$temp</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">20</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">next</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$temp</span><span style="color: #339933;">==</span><span style="color: #cc66cc;">3</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #0000ff;">$temp</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">30</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">redo</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$temp</span><span style="color: #339933;">==</span><span style="color: #cc66cc;">4</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #0000ff;">$temp</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">40</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">last</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot;@list<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span></pre></div></div>

<p>也支持goto。</p>
<p>单行条件，也很有特色：语法为statement keyword condexpr。其中keyword可为if、unless、while或until。尤其是短循环时，很方便。</p>
<p>用 sub 来定义子程序，用 &#038;xxx 或者 do xxx 来引用。</p>
<p>实参用括号的传入，（&#038;xxx(1, 2, 3)），形参不列出，在子程序里用 @_ 来引用传入的实参。</p>
<p>局部变量有两种， my($xxx) 的变量自在本子程序内有效。 local($xxx) 的变量在本子程序和下级的子程序内有效。</p>
<p>用变量和数组混合做为参数，传给子程序时，要小心有可能传到 @_ 的时，会被重组。</p>
<p>传参数的时候，也可以传地址，这时候，子程序里改变的变量会影响外部。</p>
<p>perl5里有3个预设的子程序，BEGIN、END、AUTOLOAD，这点又有点像awk。AUTOLOAD 是在找不到子程序的时候被调用。</p>
<p>关联数组，就是用任意变量类型做下标的数组，用 %变量名表示，可以用 foreach $key (keys(%hashlist)) 来遍历。这其实就是python的dict。 不过其 sort keys 不知道是什么语法。。。</p>

<div class="wp_syntax"><div class="code"><pre class="perl" style="font-family:monospace;"><span style="color: #0000ff;">%fruit</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;apples&quot;</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">17</span><span style="color: #339933;">,</span><span style="color: #ff0000;">&quot;bananas&quot;</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">9</span><span style="color: #339933;">,</span><span style="color: #ff0000;">&quot;oranges&quot;</span><span style="color: #339933;">,</span><span style="color: #ff0000;">&quot;none&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
和这个等效：
<span style="color: #0000ff;">%fruit</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;apples&quot;</span><span style="color: #339933;">=&gt;</span><span style="color: #cc66cc;">17</span><span style="color: #339933;">,</span><span style="color: #ff0000;">&quot;bananas&quot;</span><span style="color: #339933;">=&gt;</span><span style="color: #cc66cc;">9</span><span style="color: #339933;">,</span><span style="color: #ff0000;">&quot;oranges&quot;</span><span style="color: #339933;">=&gt;</span><span style="color: #ff0000;">&quot;none&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
可以先数组，再关联数组：
<span style="color: #0000ff;">@fruit</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;apples&quot;</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">17</span><span style="color: #339933;">,</span><span style="color: #ff0000;">&quot;bananas&quot;</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">9</span><span style="color: #339933;">,</span><span style="color: #ff0000;">&quot;oranges&quot;</span><span style="color: #339933;">,</span><span style="color: #ff0000;">&quot;none&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #0000ff;">%fruit</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">@fruit</span><span style="color: #339933;">;</span>
反之亦然：
<span style="color: #0000ff;">%fruit</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;grapes&quot;</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">11</span><span style="color: #339933;">,</span><span style="color: #ff0000;">&quot;lemons&quot;</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">27</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #0000ff;">@fruit</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">%fruit</span><span style="color: #339933;">;</span>
不过<span style="color: #0000ff;">@fruit</span>可能变成 <span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;lemons&quot;</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">27</span><span style="color: #339933;">,</span><span style="color: #ff0000;">&quot;grapes&quot;</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">11</span><span style="color: #009900;">&#41;</span></pre></div></div>

<p>关联数组可以直接赋值增加，用 delete 函数删除。 (&#8220;lemons&#8221;,27,&#8221;grapes&#8221;,11)</p>
<p>keys 对应的是 values，可以取出所有的值。</p>
<p>可以用each更好地循环关联数组：<br />
%records = (&#8220;Maris&#8221;, 61, &#8220;Aaron&#8221;, 755, &#8220;Young&#8221;, 511);<br />
while (($holder, $record) = each(%records)) {<br />
  # stuff goes here<br />
}</p>
<p>$~ 是个系统变量，用于指定打印格式。</p>
<p>@<<<	左对齐输出  尖尖的个数，就是占的位数。<br />
@>>>	右对齐输出<br />
@|||	中对齐输出<br />
@##.##  	固定精度数字<br />
@*	多行文本</p>
<p>select 可以改变缺省文件变量，这样就可以输出内容到文件了。</p>
<p>format 还可以设置页眉。。。</p>
<p>$^是页眉格式，$=是每页行数。还有个当前页的行计数器： $-</p>
<p>设置系统变量$|为非零值，则输出到文件的时候不使用缓冲。</p>
<p>内置了一套完整的文件处理函数，基本上和linux命令是同名的，用法也类似。比如： read/getc/mkdir/readdir/rmdir/rename/link/unlink/chown/stat 等等。</p>
<p>perl和C类似，存在指针，也可以叫“引用”。和C的&#038;取地址符类似的是 \   地址可以指向所有的类型，包括子程序。</p>
<p>perl也是面向对象的──类是一个Perl包，其中含提供对象方法的类。方法是一个Perl子程序，类名是其第一个参数。对象是对类中数据项的引用。</p>
<p>与包的引用结合，可以用单引号(&#8216;)操作符来定位类中的变量，类中成员的定位形式如：$class&#8217;$member。在Perl5中，可用双冒号替代单引号来获得引用，如：$class&#8217;$member与$class::$member相同。</p>
<p>一个perl程序可以用package切分成很多个“包”，各包之间有独立的命名空间，而且程序可以随时在包之间来回切换。</p>
<p>perl里有两个和python的import类似的语法，require和use，require更像C的宏替换，use更像import。然后和 sys.path 类似的数组叫 @INC。</p>
<p>还有 cpan 很强大~</p>
]]></content:encoded>
			<wfw:commentRss>http://luy.li/2010/07/25/special-perl/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Google Storage</title>
		<link>http://luy.li/2010/07/03/google-storage/</link>
		<comments>http://luy.li/2010/07/03/google-storage/#comments</comments>
		<pubDate>Sat, 03 Jul 2010 09:59:33 +0000</pubDate>
		<dc:creator>bones7456</dc:creator>
				<category><![CDATA[流水帐]]></category>

		<guid isPermaLink="false">http://luy.li/?p=1648</guid>
		<description><![CDATA[Google Storage是一个Google旗下的云存储服务，其数据存于美国的数个数据中心。主要面向开发者，免费提供100G的空间和300G的流量，当然，如果你愿意出点钱，可以获得更多。但是目前还处于测试阶段，不能直接注册，可以在这里申请，运气好的话，过几天就会收到试用邀请了。 我有幸获得了试用资格，体验了一下，就在这里记一下感想。 首先，Google Storage把所有存在上面的数据都放在一个个的“Bucket”里面，而这个bucket的名字，是所有用户共享的，也就是说，我建了个叫bones的bucket以后，其他人就不能再建这名的bucket了。 然后bucket里，就是一个个的object了。也就是说数据其实只有 bucket/object 两层，并没有常见文件树的嵌套目录结构。幸好object的名字可以带斜杆，而且web操作上也确实可以用带斜杆的object name来模拟目录结构。 其实，Google Storage采用Key/secret对的形式来进行权限管理，一个google账号可以同时建立5个Key/secret对。这样，在保证安全性的同时，也最大程度地提供了便利性。 权限这块，好像还可以把某个bucket的权限开放给指定的用户和组（就是google group），这个要用下面介绍的 GSUtil。 另外，Google Storage还提供了一个python写的命令行工具GSUtil，不过只有linux版和mac版，当我windows下安个cygwin还是可以跑的，呵呵。安装这个工具也很方便，直接下载解压到任意目录，然后配置一下环境变量，让系统能找到gsutil及相应的库就可以了，详见这里。 首次运行gsutil，程序会让你输入Key/secret对，你把web上生成的信息输入进去，就可以使用了。 目前，使用这个工具可以建立/删除 bucket和object，以及上传或重命名文件；还可以用于设置权限等。 就玩了这么多，不过它还有个python的开发库，应该是可以重点研究的，如果能写个东西把这100G空间挂载到本地目录，应该还是蛮好玩的，呵呵。]]></description>
			<content:encoded><![CDATA[<p><a href="http://code.google.com/intl/zh-CN/apis/storage/">Google Storage</a>是一个Google旗下的云存储服务，其数据存于美国的数个数据中心。主要面向开发者，免费提供100G的空间和300G的流量，当然，如果你愿意出点钱，可以获得更多。但是目前还处于测试阶段，不能直接注册，可以在<a href="http://gs-signup-redirect.appspot.com/">这里</a>申请，运气好的话，过几天就会收到试用邀请了。<br />
我有幸获得了试用资格，体验了一下，就在这里记一下感想。</p>
<p>首先，Google Storage把所有存在上面的数据都放在一个个的“Bucket”里面，而这个bucket的名字，是所有用户共享的，也就是说，我建了个叫<code>bones</code>的bucket以后，其他人就不能再建这名的bucket了。<br />
然后bucket里，就是一个个的object了。也就是说数据其实只有 bucket/object 两层，并没有常见文件树的嵌套目录结构。幸好object的名字可以带斜杆，而且web操作上也确实可以用带斜杆的object name来模拟目录结构。</p>
<p>其实，Google Storage采用Key/secret对的形式来进行权限管理，一个google账号可以同时建立5个Key/secret对。这样，在保证安全性的同时，也最大程度地提供了便利性。<br />
权限这块，好像还可以把某个bucket的权限开放给指定的用户和组（就是google group），这个要用下面介绍的 GSUtil。</p>
<p>另外，Google Storage还提供了一个python写的命令行工具GSUtil，不过只有linux版和mac版，当我windows下安个cygwin还是可以跑的，呵呵。安装这个工具也很方便，直接下载解压到任意目录，然后配置一下环境变量，让系统能找到gsutil及相应的库就可以了，详见<a href="https://code.google.com/intl/zh-CN/apis/storage/docs/gsutil.html">这里</a>。<br />
首次运行gsutil，程序会让你输入Key/secret对，你把web上生成的信息输入进去，就可以使用了。<br />
目前，使用这个工具可以建立/删除 bucket和object，以及上传或重命名文件；还可以用于设置权限等。</p>
<p>就玩了这么多，不过它还有个python的开发库，应该是可以重点研究的，如果能写个东西把这100G空间挂载到本地目录，应该还是蛮好玩的，呵呵。</p>
]]></content:encoded>
			<wfw:commentRss>http://luy.li/2010/07/03/google-storage/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>个性鼠标</title>
		<link>http://luy.li/2010/07/03/special_mouse/</link>
		<comments>http://luy.li/2010/07/03/special_mouse/#comments</comments>
		<pubDate>Sat, 03 Jul 2010 07:15:20 +0000</pubDate>
		<dc:creator>bones7456</dc:creator>
				<category><![CDATA[流水帐]]></category>

		<guid isPermaLink="false">http://luy.li/?p=1641</guid>
		<description><![CDATA[这其实是一个鼠标，前几天在网上无意中看到的，觉得挺有意思，就买了来。 刚拆包的时候，感觉第一印象是做工很一般，不过想想才15块钱，也差不多就这样了吧。 试用了一下，目前感觉还不是很习惯，呵呵，左右键还可以，但是要在鼠标移动的时候双击之类的，就会有点困难了，而且移动的时候经常定位不准。 不过也有个好处就是打开一个很长的网页以后，手可以脱离桌面来操纵滚轮，这点不错。 另外，这个滚轮没法按下，这对win可能没啥，但对linux来说，就无法简单地粘帖了。。。幸好同时按下左右键这个操作还算比较方便，弥补了一下。 另外，虽然宣传说可以边用鼠标边打字，但是其实一个手指被套牢以后，打字还是会很别扭的。 为了试试可用性，特意用这鼠标去win下打了局魔兽（冰封王座，不是魔兽世界），以我这极菜的水平，还是可以勉强打赢一个简单的电脑，哈哈，就说明这个还是有潜力的。 再贴张使用时候的图： 虽然这玩意不算很完美，但是多少体现出一种创新吧,还是蛮赞的~ 多一些这种个性产品，生活也会更美好的。]]></description>
			<content:encoded><![CDATA[<p><img src="http://luy.li/wp-content/uploads/2010/07/mouse1.jpg" alt="" title="mouse1" width="644" height="494" class="alignnone size-full wp-image-1642" /><br />
这其实是一个鼠标，前几天在网上无意中看到的，觉得挺有意思，就买了来。<br />
刚拆包的时候，感觉第一印象是做工很一般，不过想想才15块钱，也差不多就这样了吧。<br />
试用了一下，目前感觉还不是很习惯，呵呵，左右键还可以，但是要在鼠标移动的时候双击之类的，就会有点困难了，而且移动的时候经常定位不准。<br />
不过也有个好处就是打开一个很长的网页以后，手可以脱离桌面来操纵滚轮，这点不错。<br />
另外，这个滚轮没法按下，这对win可能没啥，但对linux来说，就无法简单地粘帖了。。。幸好同时按下左右键这个操作还算比较方便，弥补了一下。<br />
另外，虽然宣传说可以边用鼠标边打字，但是其实一个手指被套牢以后，打字还是会很别扭的。<br />
为了试试可用性，特意用这鼠标去win下打了局魔兽（冰封王座，不是魔兽世界），以我这极菜的水平，还是可以勉强打赢一个简单的电脑，哈哈，就说明这个还是有潜力的。<br />
再贴张使用时候的图：<br />
<img src="http://luy.li/wp-content/uploads/2010/07/mouse2.jpg" alt="" title="mouse2" width="691" height="465" class="alignnone size-full wp-image-1643" /><br />
虽然这玩意不算很完美，但是多少体现出一种创新吧,还是蛮赞的~<br />
多一些这种个性产品，生活也会更美好的。</p>
]]></content:encoded>
			<wfw:commentRss>http://luy.li/2010/07/03/special_mouse/feed/</wfw:commentRss>
		<slash:comments>25</slash:comments>
		</item>
		<item>
		<title>买了个硬盘转接器</title>
		<link>http://luy.li/2010/06/26/unitek-y-1031/</link>
		<comments>http://luy.li/2010/06/26/unitek-y-1031/#comments</comments>
		<pubDate>Sat, 26 Jun 2010 08:47:41 +0000</pubDate>
		<dc:creator>bones7456</dc:creator>
				<category><![CDATA[流水帐]]></category>

		<guid isPermaLink="false">http://luy.li/?p=1615</guid>
		<description><![CDATA[之前在淘宝上买了一个硬盘转接器，昨天到货了，今天试了了一下，感觉还可以。 我买的是UNITEK的Y-1031，本来想拍个图传上来的，结果发现相机扔老家了以后，身边居然没有一个可以拍照的设备，呃，看来得买个新手机了？ 不过好在现在有搜索引擎，拿型号随便一搜就有图片了，所以也省得我拍了。 还是说说使用感受：这玩意的特点是小巧，然后支持2.5寸和3.5寸的IDE以及SATA接口的设备，包括硬盘和光驱之类的。 现在好了，我可以把压箱底的80G大硬盘拿出来做/home的全量备份了，哈哈。还有下回买个1T的盘，放视频文件之类的大家伙。因为刻录的光盘实在太多了，我的光盘包都要爆满了，是时候换种存储方式了。 不过，在我看来，这个并不适合当移动硬盘，虽然转接器不大，但是带个电源加上硬盘，又都是外置的，移动用的话，不方便也不稳定。还是比较适合备份。 另外，全量备份的/home，因为涉及隐私（我倒是没有什么艳照，但不少密码都是明文保存的呢），然后硬盘的丢失概率又大些，所以采用了加密分区，关于这个加密分区，等我下文仔细说说吧~ 这个是80G老硬盘的读写速度测试图，呵呵：]]></description>
			<content:encoded><![CDATA[<p>之前在淘宝上买了一个硬盘转接器，昨天到货了，今天试了了一下，感觉还可以。<br />
我买的是UNITEK的Y-1031，本来想拍个图传上来的，结果发现相机扔老家了以后，身边居然没有一个可以拍照的设备，呃，看来得买个新手机了？<br />
不过好在现在有搜索引擎，拿型号随便一搜就有图片了，所以也省得我拍了。</p>
<p>还是说说使用感受：这玩意的特点是小巧，然后支持2.5寸和3.5寸的IDE以及SATA接口的设备，包括硬盘和光驱之类的。<br />
现在好了，我可以把压箱底的80G大硬盘拿出来做/home的全量备份了，哈哈。还有下回买个1T的盘，放视频文件之类的大家伙。因为刻录的光盘实在太多了，我的光盘包都要爆满了，是时候换种存储方式了。<br />
不过，在我看来，这个并不适合当移动硬盘，虽然转接器不大，但是带个电源加上硬盘，又都是外置的，移动用的话，不方便也不稳定。还是比较适合备份。</p>
<p>另外，全量备份的/home，因为涉及隐私（我倒是没有什么艳照，但不少密码都是明文保存的呢），然后硬盘的丢失概率又大些，所以采用了加密分区，关于这个加密分区，等我下文仔细说说吧~</p>
<p>这个是80G老硬盘的读写速度测试图，呵呵：<br />
<img src="http://luy.li/wp-content/uploads/2010/06/80-GB-SAMSUNG-SP0802N.png" alt="" title="80 GB - SAMSUNG SP0802N" width="728" height="494" class="alignnone size-full wp-image-1627" /></p>
]]></content:encoded>
			<wfw:commentRss>http://luy.li/2010/06/26/unitek-y-1031/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
	</channel>
</rss>
