Perl unless
在perl的if控制结构中,只有当条件表达式为真时才执行某块代码。如果想让程序块在条件为假时才执行,此时可以把if改成unless
例如:
unless ($fred =~ /^([A-Z_]\w*$/i) {
print "The value of \$fred doesn't look like a Perl identifier name. \n";
}
使用unless意味着,要么条件为真,要么执行某块代码。这就好像使用if控制结构来判断相反的条件。另一种说法是它类似于独立的else子句。也就是说,当看不懂某个unless语句时,可以用如下的if语句来代替:
if ($fred =~ /^([A-Z_]\w*$/i) {
//什么都不做
} else {
print "The value of \$fred doesn't look like a Perl identifier name. \n";
}
如此操作与运行效率高低无关,两种写法应该会被统译成相同的内部字节码。另外一个改写的方法,就是以取反操作符!来否定条件:
if ( ! ($fred =~ /^([A-Z_]\w*$/i) ) {
print "The value of \$fred doesn't look like a Perl identifier name. \n";
}
unless附带的else子句
其实哪怕是在unless结构中也可以使用else语句,虽然支持这样的语法,但是可能会导致困惑:
#!/usr/bin/perl -w
unless ($mon =~ /^Feb/) {
print "This month has at least thirty days.\n";
} lese {
print "Do you see what's going on here?\n";
}
#如果用if语句我们可以写成这样:
if ($mon =~ /^Feb/) {
print "Do you see what's going on here?\n";
} else {
print "This month has at least thirty days.\n";
}
最新文章
- C++常见笔试面试要点以及常见问题
- HTML思维导图
- 解决(空密码的root)提示修改phpmyadmin用户密码
- 配置Hadoop开发环境(Eclipse)
- Javascript跨域问题解决方案
- YAPF:Google开源的Python代码格式化工具
- java中的静态static关键字
- [读书笔记]算法(Sedgewick著)·第二章.初级排序算法
- C# winform 窗体 彻底退出窗体的方法
- Dubbo原理解析-监控
- RH033读书笔记(6)-Lab 7 Standard I/O and Pipes
- 对java中classloader使用的一点理解(转)
- jQuery表格排序组件-tablesorter
- 在gem5的full system下运行 x86编译的测试程序 running gem5 on ubuntu in full system mode in x86
- Standard PHP Library(SPL)中的数据结构
- 如何解决Reporting Services目录数据库文件存在的问题
- 深入理解javascript 匿名函数和闭包
- noj算法 踩气球 回溯法
- Java知多少(39)interface接口
- elasticsearch解决控制台中文乱码问题