if控制结构
if 示例
if ($name gt 'John'){
print "$name coms after 'John' in sorted order.\n";
}
if else 示例
if ($name gt 'John'){
print "$name" comes after 'John' in sorted order.\n";
}else{
print "xxxxxx";
}
while控制结构
只要条件持续为真,就会不断执行代码块
$count = 0;
while ($count < 10){
$count += 2;
print "count is now $count\n";
}
foreach控制结构
doreach(循环)能逐个项遍历列表中的值
foreach $rock (qw/ bedrock slate lava/){
print "One rock is $rock.\n"; #依次打印所有三种石头的名称
}
while与foreach的区别
在while循环里,Perl会读取一行输入,把它存入某个变量并且执行循环的主体,接下来它会回头去寻找其他的输入行。
在foreach循环里,行输入操作符会在列表上下文中执行(因为foreach需要逐项处理列表内容)。为此,在循环能否开始执行前,它必须先将输入全部读进来。加入输入来自400MB的Web服务器日志文件,它们的差异会十分明显。
所以最好的做法通常是尽量使用while循环的简写,让它每次处理一行
布尔值
perl并没有专用的“布尔(boolean)”数据类型,它靠一些简单的规则来判断
- 如果是数字,0为假;所有其他数字都为真
- 如果是字符串,空字符串(”)为假;所有其他字符串都为真
- 如果即不是数字也不是字符串,那就先转换成数字或字符串再行判断
chomp操作符
作用:如果字符串末尾是换行符,chomp()的任务就是去掉它
常用方法:
chomp($text = <STDIN>); #读入文字,略过最后的换行符
defined函数
作用:判断某字符串是undef还是空字符串,如果是undef,该函数返回假,否则返回真
$madonna = <STDIN>;
if ( defined($madonna)){
print "The input was $madonna";
}else{
print "No input available\n";
}