perl终于开始了

有时候觉得一个人是如此的渺小,渺小到历史根本不会记得你,渺小到你的三百六十五天与其它人毫无关系。所以啊,是否名垂千古,与我的关系似乎都不大。而我,想要的其实很简单,欣赏每个日出与黄昏,享受宁静的夜色与黎明,至少在自己的世界里无所不能,有着喜欢的歌,有着期待的人,有着狭小的胸襟和渺小的梦,只希望不辜负看似平淡却很值得珍惜的everyday。

似乎在犹豫什么,是因为到目前为止还没有真正的派上用场,但是每次学习perl都被他那无拘无束的,意想不到的,不同于其他语言的语法感到惊讶。学习perl恐怕要改变以往的固定的语法思维,什么是浮点数,什么是整数,什么是字符串,在perl的世界里都一样,不都是二进制文件么?是的,就是这么傲娇,而确定他们的条件就是context(上下文环境)。所以学习perl会觉得没有什么是不可能,而且会改变思维习惯。

perl的核心思想:

1
2
3
1. 没有不必要的限制

2. 解决问题的方法不止一个

开头:

脚本都需要一个开头声明是使用的啥脚本语言,shell?perl?python?

1
#!/usr/bin/perl

关于文件命名规则:

perl是不赞成把perl脚本写成.pl等等啥的。

字符串连接:.

1
2
"hello"."world"-->"helloworld"
"a"."b"-->"ab"

字符串重复操作符:x

1
2
"a"x3-->"aaa"
"hello"x3-->"hellohellohello"

数字比较:

1
< 	<= 	> 	>= 	==	 !=

字符串比较:

1
lt	 le   gt 	ge 	eq 	ne

数字和字符串都作为一个东西:标量变量

数字都以双精度存储。可以以_分隔,并不影响数字

1
123456789=123_456_789

标量变量都以$开头

标量或者说变量其实都是指的同一个东西。可以说标量、变量、标量变量。

与其它语言不同,比如python定义了一个变量就可以直接使用变量名来使用变量。但是perl不同,只有以$开头的才被认为是标量变量。

1
2
3
4
5
6
# 比如赋值语句中变量必须以$开头
$num = 5
# 比如if判断语句中
if($num > 5){
print "great than 5";
}

标量不需要初始化undef

这就是perl的哲学思想,省去不必要的麻烦,定义标量不就是拿来用的吗,既然这样又何必每次都需要声明变量赋初值,直接拿来用不是简单一些。所以:

1
2
数字-->表现为0
字符串-->表现为空

perl中括号是可选的

除非移除他们含义会变,否则都可以不写括号。循环控制结构中括号不可省(for、while循环等,if判断等)

1
2
print("it seems that i have a dream\n");
print "it seems that i have a dream",'\n';

简单的输入与输出

1
2
3
4
5
6
$变量 = <STDIN>; #读取输入,变量不需要初始化
chomp($变量); # 去掉换行符,从标准输入(键盘)读取时会将换行符一起读入
chomp($变量=<STDIN>); # 合起来写

chomp($num=<STDIN>);
chomp $num=<STDIN>; #括号不是必须的

所有语句都以;结尾

1
print "hello";