﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" 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/"><channel><title>C++博客-QuXiao-随笔分类-读书笔记</title><link>http://www.cppblog.com/ACM-Boy/category/9236.html</link><description>每天进步一点点!</description><language>zh-cn</language><lastBuildDate>Mon, 02 Feb 2009 12:27:24 GMT</lastBuildDate><pubDate>Mon, 02 Feb 2009 12:27:24 GMT</pubDate><ttl>60</ttl><item><title>《Perl入门》读书笔记</title><link>http://www.cppblog.com/ACM-Boy/archive/2009/02/02/72806.html</link><dc:creator>quxiao</dc:creator><author>quxiao</author><pubDate>Mon, 02 Feb 2009 06:36:00 GMT</pubDate><guid>http://www.cppblog.com/ACM-Boy/archive/2009/02/02/72806.html</guid><wfw:comment>http://www.cppblog.com/ACM-Boy/comments/72806.html</wfw:comment><comments>http://www.cppblog.com/ACM-Boy/archive/2009/02/02/72806.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/ACM-Boy/comments/commentRss/72806.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ACM-Boy/services/trackbacks/72806.html</trackback:ping><description><![CDATA[<p>寒假期间看了一本关于Perl的入门书籍，感觉不错，下面是一些读书笔记：</p>
<p><br></p>
<p>你将看到整数(如255，2001 等)和浮点数（有小数点的实数，如3.14159，1.35x1025），但在内部，Perl 都把它们当作双精度浮点数来处理</p>
<p><br>61298040283768,Perl 允许用下划线来分隔它，因此可以像下面这样书写：61_298_040_283_768<br><br>和C，C++不同，Perl 中NUL 字符没有特殊的含义。Perl 能计算长度，不用靠null 来判断字符串是否结束。<br><br>单引号字符串中的\n 不会被当作换行符来处理，其仅仅是两个字符\和n。只有在反斜线(\)后面接的是\或单引号&#8217;，其才会被当作特殊符号来处理。<br><br>一个特殊的操作符是字符串重复操作符(string repetition operator)，由小写的字母x 表示。<br>&#8220;fred&#8221;x 3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #&#8220;fredfredfred&#8221;<br>&#8220;barney&#8221;x (4+1)&nbsp; # &#8220;barney&#8221;x 5, &#8220;barneybarneybarneybarneybarney&#8221;<br>5 x 4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #实际上是&#8220;5&#8221;x 4, &#8220;5555&#8221;<br><br>标量变量在Perl 中由$开头<br><br>列表和数组可以包含任意数量的元素。最少含有0 元素，最多可以填满你的可用内存。这里又体现了Perl 的设计哲学,&#8220;没有不必要的限制&#8221;。<br><br>rocks 数组，其最后一个元素的索引为$#rocks<br><br>Larry 提供了一种简便方法：数组的负数索引值从最后一个元素开始<br>负数索引值是-1表示最后一个元素<br><br>一个给定的表达式在不同的上下文中其含义是不同的。<br>$fred = something;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # 标量context<br>@pebbles = something;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #列表context<br>($wilma,$betty) = something; #列表context<br>($dino) = something;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #列表context<br><br>当Perl 遍历此子程序时，将会计算每一步的值。此子程序中最后计算的值将被返回。<br><br>这是Unix中很少人知道的一个事实：如许多标准的工具，如cat,sed,也使用这种约定，连接号（-）代表标准输入流。<br><br>技术上讲，&lt;&gt;从数组@ARGV 中得到调用参数。<br><br>printf&#8220;The items are:\n&#8221;. (&#8220;%10s\n&#8221;x @items), @items;<br><br>程序的名字在Perl 的特殊变量$0 中<br><br>只有Perl 成功的重新打开新的连接，否则是不会关闭以前的连接。<br><br>要引用整个hash，使用百分号(&#8220;%&#8221;)作为前缀<br><br>使用delete 后，hash 中将不会存在此key；如果其值是udnef，则key 是存在的。<br><br>不要将正则表达式和shell 中的文件名匹配模式，globs 混淆了.<br><br>Perl 中，注释可以被作为空白<br><br>使用绑定操作符(=~)将告诉Perl 将右边的模式在左边的字符串上进行匹配，而非对$_匹配。<br><br>@fields = split /:/,&#8220;abc:def::g:h&#8221;; #得到(&#8220;abc&#8221;, &#8220;def&#8221;, &#8220;&#8221;, &#8220;g&#8221;, &#8220;h&#8221;)<br>这里有一条规则：开头的空元素会被返回，但结尾的空元素被丢弃<br>@fields = split /:/, &#8220;:::a:b:c:::&#8221;; #得到（&#8220;&#8221;, &#8220;&#8221;, &#8220;&#8221;, &#8220;a&#8221;, &#8220;b&#8221;, &#8220;c&#8221;）;<br><br>默认时，split 对$_操作，模式为空白：<br>my @fields = split; #同split /\s+/, $_；<br><br>如果没有指定文件名，则其从标准输入流中自动打开和关闭一系列文件进行读入。如果$^I中有字符串，这个字符串则会成为备份文件的扩展名。<br><br>?号在正则表达式中的第四种用法：问号，表示0 或1 的数量词，非贪婪修饰符，现在是开头符<br><br>条件表达式也是先被求值的，虽然被放在后面<br><br>last 会立刻结束循环。（这同C 语言或其它语言中的&#8220;break&#8221;语句类似）<br><br>可以使用last 从&#8220;裸的&#8221;代码块中跳出。<br><br>next 之后，又会进入下一轮循环（这和C 或者类似语言的&#8220;continue&#8221;相似）<br><br>redo会调到当前循环块的顶端，不进行条件表达式判断以及接着本次循环。<br><br>标签在整块之前使用；不是针对代码中的某些点<br><br>-T和-B分别检测一个文件是文本的还是二进制,那Perl是怎样知道的呢？答案是Perl欺骗了我们：它打开一个文件，查看前面几千个字节，进行合理的猜测。如果没有太多的怪异符号，则其像文本<br><br>每当在程序中使用stat, lstat，或文件检测(file test)时，Perl 就会要求系统分配一块stat buffer给文件(也就是，stat系统调用所返回的buffer)。这就意味着如果想知道文件是否是可读且可写的，需要对相同的信息进行两次系统调用<br><br>这暗示了一个目录的连接数等于2 (.和..)加上其包含的子目录的个数。<br><br>在Perl 中，环境变量可以通过%ENV 这个hash 变量得到<br><br>对于system和exec，其输出的结果传到Perl标准输出的地方。有时，将其结果作为字符串保留下来以便进一步处理是很有趣的。这可以通过使用反引号(`)而非单引号或者双引号做到<br><br>Perl 提供了处理严重错误的方法：将这些代码放入eval 块中<br><br>eval 是一个表达式（不是像while 或foreach 那样的控制结构），因此结尾处的分号是必须的。<br><br>如果eval 捕捉到了严重错误，则返回值为undef 或空列表，依赖于其context<br><br>如果将列表的一个元素被赋给undef，则意味着忽略此元素：<br>my(undef, $card_num, undef, undef, undef, $count) = split /:/;<br><br>同array slice一样，(hash slice)变量前的符号（$或@符号）决定了下标表达式的context。如果前面是$符号，则下标表达式是在标量context 中被求值，得到一个值◆。如果之前为@符号，则下标表达式在列表context 中被求值，得到一列值。<br></p><img src ="http://www.cppblog.com/ACM-Boy/aggbug/72806.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ACM-Boy/" target="_blank">quxiao</a> 2009-02-02 14:36 <a href="http://www.cppblog.com/ACM-Boy/archive/2009/02/02/72806.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>《设计模式解析》读书笔记1</title><link>http://www.cppblog.com/ACM-Boy/archive/2009/01/16/72155.html</link><dc:creator>quxiao</dc:creator><author>quxiao</author><pubDate>Fri, 16 Jan 2009 04:11:00 GMT</pubDate><guid>http://www.cppblog.com/ACM-Boy/archive/2009/01/16/72155.html</guid><wfw:comment>http://www.cppblog.com/ACM-Boy/comments/72155.html</wfw:comment><comments>http://www.cppblog.com/ACM-Boy/archive/2009/01/16/72155.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/ACM-Boy/comments/commentRss/72155.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ACM-Boy/services/trackbacks/72155.html</trackback:ping><description><![CDATA[更有意义的定义应该是从概念视角出发——对象是具有责任的一个实体，这些责任定义了对象的行为。<br><br>关注动机而非实现，是设计模式反复出现的主题。<br><br>封装应该被视为&#8220;任何形式的隐藏&#8221;。换句话说，可以是隐藏数据，但还可以是隐藏以下各种东西：<br>&nbsp;&nbsp;&nbsp; 实现细节<br>&nbsp;&nbsp;&nbsp; 派生类<br>&nbsp;&nbsp;&nbsp; 设计细节<br>&nbsp;&nbsp;&nbsp; 实例化规则&nbsp; （？）<br>&nbsp;&nbsp;&nbsp; <br>发现变化并将其封装；优先使用对象聚集而不是类继承<br><br>&#8220;每次当我们感觉需要为什么东西加注释的时候，相反我们会编写一个方法&#8221;。（XP编程）<br><br>灾难往往是由短期未臻最优的策略，长期累积而引起的。<br><br> <img src ="http://www.cppblog.com/ACM-Boy/aggbug/72155.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ACM-Boy/" target="_blank">quxiao</a> 2009-01-16 12:11 <a href="http://www.cppblog.com/ACM-Boy/archive/2009/01/16/72155.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>《与未来同行——李开复文集》句子摘抄（不断更新中）</title><link>http://www.cppblog.com/ACM-Boy/archive/2008/12/15/69537.html</link><dc:creator>quxiao</dc:creator><author>quxiao</author><pubDate>Mon, 15 Dec 2008 14:51:00 GMT</pubDate><guid>http://www.cppblog.com/ACM-Boy/archive/2008/12/15/69537.html</guid><wfw:comment>http://www.cppblog.com/ACM-Boy/comments/69537.html</wfw:comment><comments>http://www.cppblog.com/ACM-Boy/archive/2008/12/15/69537.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/ACM-Boy/comments/commentRss/69537.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ACM-Boy/services/trackbacks/69537.html</trackback:ping><description><![CDATA[无论你做出了怎样优秀的工作，不会表达，无法让更多的人去理解和分享，那就几乎等于白做。<br><br>担心别人走到你前面的想法是不健康的，也无助于你的成功。<br><br>当面不说，背后乱讲，这样对他人和自己都毫无益处，最后只能破坏集体的团结。<br><br>不要竭尽全力去和你的同僚竞争。你应该在乎的是，你要比现在的你强。<br><br>当你开始为自己而生活，接受并喜欢自己，接受并接近你的父母，接受环境中不能改变的事情，你就会发现你开始快乐了。<br><br>人生是有限的，大家应把有限的时间用在&#8220;喜欢做的事情&#8221;上，但必须先把&#8220;应该做的事情&#8221;做得足够好。<br>
<br>
有勇气改变可以改变的事情，有胸怀接受不可改变的事情，有智慧来分辨两者的不同。<br>
<br>
做一支照亮他人的蜡烛，而非评判对错的法官；以身作则，不要只顾批评；解决问题，不要制造问题；不要怪罪别人或为自己文过饰非，不怨天，不尤人。<br>
<br>
你们的时间有限，所以不要浪费时间活在别人的生活里。<br>
<br>
专注于你能够改变的事情，可能最后连当初不能改变的事情也改变了。<br> <img src ="http://www.cppblog.com/ACM-Boy/aggbug/69537.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ACM-Boy/" target="_blank">quxiao</a> 2008-12-15 22:51 <a href="http://www.cppblog.com/ACM-Boy/archive/2008/12/15/69537.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>