目录
公司项目代码里有大量的Perl和Python代码,对于我这个一直搞C++的人,得赶紧弥补一下这方面语言基础了。虽然说编程语言有很多共通点,但是不同语言还是有一些独特的语法,编程风格和编程习惯也不太一样,系统学习一遍是必须的。Python略有基础,那就先从Perl开始吧。
初识Perl
Perl由Larry Wall设计开发,它是一门脚本语言,由Per解释器解释执行,和Python/Shell类似。Perl主要的特性在于内置正则表达式,以及成熟的CPAN类库。它的代码风格比较自由,不像Python那样强制缩进,也正是因为这种自由,会让旧的Perl代码不易阅读和维护,毕竟很多程序员都不习惯阅读别人写的代码风格。
良好的Perl开发习惯
使用内建警告信息
当使用了内建警告信息:程序内有可疑代码运行sh使用时,Perl将会发出警告;警告并不改变程序行为,只是作为一种辅助性提示;应该xu可以修改代码直至警告消除。
可以如下通过-w命令行使用内建警告信息:
#!/usr/bin/perl -w
对于Perl5.6以后的版本,还可以通过warnings指令来实现:
#!/usr/bin/perl
use warnings
eg:
#!/usr/bin/perl -w
my $str = "12a";
my $var = "123";
my $result = $str + $var;
print "$result\n";
Output:
[root@izuf682lz6444cynn96up0z basic]# ./warn.pl
Argument "12a" isn't numeric in addition (+) at ./warn.pl line 5.
135
如果没有加上-w,输出就不一样了:
[root@izuf682lz6444cynn96up0z basic]# ./warn.pl
135
另外,如果运行时加了-w,代码中定义的变量未使用也会发出如下警告:
[root@izuf682lz6444cynn96up0z basic]# ./type.pl
Name "main::name" used only once: possible typo at ./type.pl line 3.
使用帮助文档
主要是perldoc的使用。
perldoc -f print #print the description of print funcion
Perl编程风格
单双引号都可以表示字符串,但是单引号不能做特殊字符转义。
#用于单行注释。
=pod和=cut分别置于行首,中间可以写多行注释。
heredoc是一种在命令行shell和程序语言里定义字符串的方法。使用:后面必须接分号;END可以用任意其他字符替代,只要开始和结束标识一致就行;结束标识必须顶格独自占一行;开始标识可以不带引号或者带单双引号,不带引号与带双引号效果一致,解释内嵌的变量和转义符号,单引号则不解释这些。
eg:
#!/usr/bin/perl
=pod
Just
Print hello
=cut
print "hello hunk!\n";
print 'hello hunk!\n';
print "\n";
#heredoc
$a = 100;
$str = <<"EOF";
hello world
print a : a = $a
EOF
print "print str = $str\n";
OutPut:
[root@izuf682lz6444cynn96up0z basic]# ./hello.pl
hello hunk!
hello hunk!\n
print str = hello world
print a : a = 100