Perl读书笔记(1)

Learning Perl 6th

Chapter 1 and Chapter 2

1、Perl的优点:开发相对快速(比较于C),功能强大,执行效率较高(相对于Python),可移植性。

2、Perl脚本中,直接用cmd执行其他Shell命令,类似于SH脚本。

3、上述$是scalar变量(标量,单一变量),而@表示Array变量(数组)。

4、Perl支持Integer、Float等数值变量,但实际内部计算都是以Float计算的。

5、对于有效数字特别长的情况,Perl允许通过下划线“_”分割数值,_本身无意义,只是方便读取:

6、和其他语言类似,在数值常量中,Perl也支持16进制、8进制,此外还支持2进制。

7、Perl支持+、-、*、/、%等数值操作。

8、字符串用“双引号”或者‘单引号’包围。前者会对之中$开头的变量自动解析,后者不会自动解析。

9、字符串的连接操作符为点号.。

10、字符串重复操作符,用字母x表示。

11、根据语境,Perl会自动将数字、字符串互相转换。

12、Perl开启警报的两种方法。

在Perl脚本中引用

或者执行时加-w选项:

13、Warning是比较简单的提醒,如果想要描述更全面的,可以使用diagnostics。

或者Perl执行时加选项:

14、A scalar variable holds exactly one value.可以hold数值、字符串等类型。

15、与scalar variable对应的,是三种能“盛放”多个值的类型:Arrays、Hashes。

16、scalar变量以$开头,标识符的规则比其他语言更为宽松,允许数字开头、也可以用utf-8字符。

17、scalar支持=、+=、*=、.=等类型。

18、print用法与Python类似,但它的逗号输出不会自动加\t,最后也不会加\n。

19、如果scalar变量从未被赋值过,则其默认为一个空字符串。

20、在“引号”中,scalar变量将会被自动翻译位对应的值,加\可以阻止这种行为。

21、在引号翻译中,有时候变量名字和其他字符连接,导致出现意外情况,可以用${变量名}的方式,限定变量名的范围。

22、ASCII码转字符:chr;字符转ASCII码:ord。

23、如上所述,就是打印UTF8到屏幕的方法。

24、数值比较:<、<=、==、>=、>、!=。然而,Perl中的字符串比较采用了另外的操作符:lt、le、eq、ge、gt、ne。字符串比较是逐字符、字典序。

25、if结构和C系语言类似。

26、读取1行键盘的输入,$line=<STDIN>

因此,读取用户输入并打印:

27、去掉尾部的\n空行:chomp函数。

28、在Perl中,true的定义如下:

  • 数值:0为false,其他均为true;
  • 字符串:空串位false,其他均为true;
  • 非scalar,无法比较true

29、while循环:

30、未被赋值的变量,也具有一个特殊值:undef。

31、接上条,可以用函数defined()判断一个变量是否已经定义。

也可以用== undef判断。

 

Leave a Reply

Your email address will not be published.