文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>Perl语言入门笔记:第一天

Perl语言入门笔记:第一天

时间:2010-08-13  来源:linscora

Larry 开发了Perl

深入之前:Intermediate Perl

变量(variable)、循环(loop)、子程序(subroutine)、数组(array)

加入邮件列表,索取书籍手册:[email protected]

技术评论:[email protected];[email protected]

网络版:http://www.oreilly.com/catalog/9780596520106(原版)
 http://www.oreilly.com.cn/book.php?bn=978-7-5641-1763-4(中文版)
stonehenge  manager: Tom Phoenix

perl 5.010  新的条件切换语句,given-when


额外练习:Learning Perl Student Workbook

Perl 实用摘录与报表语言 (Practical Extraction and Report Language)

病态折中式垃圾列表器  (Pathologically Eclectic Rubbish Lister)

 

Perl  backronym

Perl这个词本身先被使用,后来才给出展开的词诠释

像shell或awk一样能够快速编程,又具有类似grep、cut、sort和sed的高级功能,而不必回头使用

像C这种类型的语言。

懒惰其实是一种美德,手推车是由懒得扛东西的人发明的;书写是由懒得记忆的人发明的;Perl的

创造者也是懒人,若不能发明一个新语言就懒得做事。

Perl基于低级语言(C、C++或汇编语言)和高级语言(如shell编程)中间的一种语言,它填补了低

级语言与高级语言之间的空隙。

《Perl语言编程》

骆驼长得也有点丑陋,但是它们努力工作,哪怕是在严酷的环境下也一样,骆驼能在种种不利的条

件下帮你把事情搞定,哪怕它们长相丑陋,而且气味更糟,有时候还会对你吐口水,Perl就有一点

像这样。


while (<>) {
 chomp;
 print join("\t", (split /:/)[0, 2, 1, 5]), "\n";
}

程序里bug的数量大致与源代码的长度成正比,而不是与程序的功能成正比。


开发团队邮箱:[email protected]


90%用来处理文字,10用来处理其它事务。
Perl > CGI ; Perl > PHP

 

CPAN  (Comprehensive Perl Archive Network) 综合典藏网

EDIT:

Unix: vim
Windows: UltraEdit;PFE
Mac OS X: BBEdit;TextMate

Perl程序最好不要用后缀后,某些Unix以外的系统上也用必须使用.plx的后缀名。

#!/usr/bin/perl -w
print "Hello, world!\n";
\n换行符(newline character)

chmod a+x my_program

#!/usr/bin/perl -w
use 5.010;
say "Hello World!";

Perl最缺乏可移性的就是#!那行了,因为你必须确定在第台机器上perl是放在什么路径下的。不过

可以用env 命令自动定位perl的路径。
#!/usr/bin/env perl
#!/bin/env perl
不过用了env的参数,就不能用-w参数了。

Perl程序并不需要变量声明的部分。

大部分的perl语句都是表达式后面紧接着一个分号。


如何编译Perl?
运行程序时,Perl内部的编译器会先载入整个源程序,将之转换成内部使用的bytecode,这是一种

Perl在内部用来表示程序语法树的数据结构。然后交给Perl的bytecode引擎执行。


反斜线(backslash escape)转义


mod_perl 或CGI::Fast就是应用将程序代码编译后让它驻留在内存中。好让后续的调用跳过编译。

直接运行。

 

要是把编译后的bytecode存储起来,并没有什么好处,程序不会因此变得更易使用,维护,调试或

安装。

#!/usr/bin/perl
@lines = `perldoc -u -f atan2`;  #把perldoc -u -f atan2输出结果一行行依次存储在@lines

这个数组变量里。
foreach (@lines) {               #接下来这行程序会启动一个循环,依次对每行数据进行处理

。循环里的代码是缩排过的。       
  s/\w<([^>]+)>/\U$1/g;          #对每一个包含一对尖括号(<>)的行,进行相应的数据替换操

作。而在perldoc命令的输出结果里,应该至少有一行符合此操作条件。

  print;
}

*********************************8
=over 8

=item atan2 Y,X
X<atan2> X<arctangent> X<tan> X<tangent>

Returns the arctangent of Y/X in the range -PI to PI.

For the tangent operation, you may use the C<Math::Trig::tan>
function, or use the familiar relation:

    sub tan { sin($_[0]) / cos($_[0])  }

Note that atan2(0, 0) is not well-defined.

***********************************8
运行后,把小写的变成大写的了。
***********************************8
=over 8

=item atan2 Y,X
ATAN2 ARCTANGENT TAN TANGENT

Returns the arctangent of Y/X in the range -PI to PI.

For the tangent operation, you may use the MATH::TRIG::TAN
function, or use the familiar relation:

    sub tan { sin($_[0]) / cos($_[0])  }

Note that atan2(0, 0) is not well-defined.

=back
***********************************8

Perl用标量来称呼单件事物。

 

标量可以存储在标量变量里,也可以从文件和设备读取

在Perl里,字符串就是单一的标量值。

Perl中所有数字都是按“双精度浮点数”。

Perl允许你在整数直接量里插入下划线,将若干位数分开,如:61_298_040_283_768

一般来说,你不能计算负数的负数次方。数学怪人们(math geeks)都知道,这样算出来的结果将会

是复数(complex number)。如果要使用复数的话,必须借助Match::Complex模块。

Perl中的字符串可以介于ASCII编码的32到126之间。不过因为字符串能够包含任何字符,所以可用

它来对二进制数据进行创建、扫描与操作。比如说,你可以将一个图形文件或编译过的可执行文件

读进Perl的字符串变量里,改变它的内容后,再写回去。


单引号内的字符串直接量(single-quoted string literal):

前后两个单引号并不属于字符串的一部分,它们只是用来让Perl识别字符串的开头与结尾。除了单

引号和反斜线字符外,单引号内所有字符都代表它们自己(包括换行字符,如果该字符串表示多行

的数据的话)要表示反斜线字符本身,需要在这个反斜线字符前再加一个反斜线字符;要表示单引

号本身时,同样在单引号前加一个反斜线字符。

注:


单引号内的\n并不代表换行字符,而是表示反斜线和n这两个字符。只有在后面是另一个反斜线或

单引号时。前面的反斜线才有特殊的意义。

双引号内的字符串直接量(double-quoted string literal):
在双引号里反斜线拥有更强大、更完整的能力,可用来表示控制字符,或是用八进制或十六进制写

法来表示任何字符。


\n   换行符
\r   回车
\t   水平制表符
\b   退格
\a   系统响铃
\007 任何八进制的ASCII(此例中007表示系统响铃)
\x7f  任何十六进制的ASCII值(此例中7f表示删除键的控制代码)
\cC 控制符,也就是Control键的代码(些例表示同时按下Ctrl键和C
\\ 反斜线
\" 双引号
\l 将下个字符转为小写
\L 将到\E为止的所有字符转为小写
\u 将下个字符转为大写
\U 将到\E为止的所有字符转为大写
\Q 将到\E为止的非单词(non-world)字符加上反斜线
\E 结束\L,\U或\Q

字符串操作符:
字符串可以用.操作符

"hello" . "world"  #等同于"helloworld"


比较特殊的字符串重复(string repetition)操作符。用小写字母x。

数字以字符串之间的自动转换:
通常Perl会根据需要,自动在数字和字符串之间进行类型转换,如果
操作符(像是+)需要的是数字,perl就会将操作视为数字;在操作符(像是.)需要字符串是,

perl便会将操作视为字符串。

对数字进行运算的操作符(比如乘法)如果遇到字符类型的操作数,perl会自动将字符串转换
成等效的十进制浮点数进行运算。因此"12" * "3" 结果会是36。"12fred34" * "3"也会得到36。

Perl内建警告信息:
perl -w my_program

#!/usr/bin/perl -w

到50页。

相关阅读 更多 +
排行榜 更多 +
翌日波奇狗的历险记手机版下载

翌日波奇狗的历险记手机版下载

休闲益智 下载
怪兽远征安卓版下载

怪兽远征安卓版下载

角色扮演 下载
谷歌卫星地图免费版下载

谷歌卫星地图免费版下载

生活实用 下载