perl模块之Smart::Comments
来源:互联网 发布:乐视如何查看mac码 编辑:程序博客网 时间:2024/05/22 16:44
这个模块用注释的方式调试和跟踪代码,写好了之后把use Smart::Comments去掉就可以了。
实验
最后上代码实验大部分特性:
[root@localhost Smart::Comments]# cat 1.pl #!/usr/bin/env perl use strict; use Smart::Comments; my $date = "2014-05-01"; #### Get: $date ### [<now>] Now... ### [<time>] Time... ### [<when>] When... ### Get time[<time>] ### Get here[<here>] ### Get file[<file>] ### Get line[<line>] my @values = (1..10); for (@values) { #### Progress[=== ] % done ### Round:$_ do_sth($_); } sleep 1; ### Compare lenth... my $len = length $date; ### require: $len > 11 sub do_sth() { my $a = shift; $a *= 2; } ### $date [root@localhost Smart::Comments]# perl 1.pl ### Get: '2014-05-01' ### [Thu May 1 22:38:49 2014] Now... ### [Thu May 1 22:38:49 2014] Time... ### [Thu May 1 22:38:49 2014] When... ### Get time[Thu May 1 22:38:49 2014] ### Get here["1.pl", line 14] ### Get file[1.pl] ### Get line[16] Progress[ ] 0% done ### Round: 1 Progress[= ] 11% done ### Round: 2 Progress[=== ] 22% done ### Round: 3 Progress[===== ] 33% done ### Round: 4 Progress[====== ] 44% done ### Round: 5 Progress[======== ] 55% done ### Round: 6 Progress[========== ] 66% done ### Round: 7 Progress[=========== ] 77% done ### Round: 8 Progress[============= ] 88% done ### Round: 9 ### Round: 10 ### Compare lenth... ### $len > 11 was not true at 1.pl line 27. ### $len was: 10
功能
- 显示变量的值
- 跟踪循环
- 验证断言
用法
#!/usr/bin/env perluse strict;use Smart::Comments;my $test = "Nice to meet you "### $test[root@localhost Smart::Comments]# perl 1.pl ### $date: 'Nice to meet you '
使用3个#号,可以打印出后面的变量值 增加#号可以让模块更智能,最多5个#号
Debugging
### Label: Expression
打印变量值和标签
### expression
打印变量
### text...
进度条
可以用<time>
<here>
<file>
<line>
获得时间
,文件和行
, 文件名
,行
检查和断言
### require: BOOLEAN_EXPR
### assert: BOOLEAN_EXPR
### ensure: BOOLEAN_EXPR
### insist: BOOLEAN_EXPR
### require: $min < $result && $result < $max
如果表达式是假, 注释就相当于执行die
命令,否者什么都不做:
### $min < $result && $result < $max was not true at demo.pl line 86.### $min was: 7### $result was: 1000004### $max was: 99
### check: BOOLEAN_EXPR
### confirm: BOOLEAN_EXPR
### verify: BOOLEAN_EXPR
就是上面的warn
的版本
进度条
foreach my VAR ( LIST ) { ### Progressing... donefor my VAR ( LIST ) { ### Progressing... doneforeach ( LIST ) { ### Progressing... donefor ( LIST ) { ### Progressing... donewhile (CONDITION) { ### Progressing... doneuntil (CONDITION) { ### Progressing... donefor (INIT; CONDITION; INCR) { ### Progressing... done
用C风格的循环,左边的花括号{
放在同一行,把注释也放到这行
for (@candidates) { ### Evaluating... done
执行效果如下,模拟...
到达右边的字符
Evaluating doneEvaluating...... doneEvaluating............. doneEvaluating................... doneEvaluating..........................done
当然可以把3个.
换成3个:
、=
、 |
也可以加入百分比的进度%
for (@candidates) { ### Evaluating [===| ] % done效果如下Evaluating [| ] 0% doneEvaluating [===| ] 25% doneEvaluating [========| ] 50% doneEvaluating [============| ] 75% doneEvaluating [=================] 100% donefor (@candidates) { ### Evaluating |===[%] |效果如下Evaluating |[0%] |Evaluating |=[25%] |Evaluating |========[50%] |Evaluating |===============[75%] |Evaluating |===========================|
对于开放式的循环,比如一个带判断的while循环,%
就代表循环次数
时间估计
在for
循环的注释中,如果一次循环超过15秒,就会出现一个剩余时间故事的框 比如
for (@seven_samurai) { ### Fighting: [||| ] fight(); sleep 5;}效果:Fighting: [ ]Fighting: [|||| ]Fighting: [||||||||| ] (about 20 seconds remaining)Fighting: [|||||||||||||| ] (about 20 seconds remaining)Fighting: [|||||||||||||||||| ] (about 10 seconds Fighting: [||||||||||||||||||||||| ] (less than 10 seconds remaining)Fighting: [|||||||||||||||||||||||||||]
依赖
都是核心模块,所以直接down下来,编译安装就可以了
- Filter::Simple
- version.pm
- List::Util
- Data::Dumper
- Text::Balanced
参考
http://search.cpan.org/~dconway/Smart-Comments-1.000005/lib/Smart/Comments.pm
0 0
- perl模块之Smart::Comments
- perl模块编程之继承
- perl模块编程之重载
- drupal模块推荐:AJAX Comments
- Android 小应用 - "Smart Help" 之模块介绍
- Scheme基本概念之 Comments
- stylus之注释(Comments)
- perl模块之Rex(本地安装)
- perl模块
- Django contrib Comments 评论模块详解
- Comments
- Comments
- perl模块之MIME::Lite发送有附件的邮件
- perl模块之MIME::Lite发送有附件的邮件
- perl模块之MIME::Lite发送有附件的邮件
- 目标管理之SMART原则
- php框架之smart
- smart学习之旅
- Benchmark of Python WSGI Servers
- 跨函数使用内存
- blog
- 24.贱啊
- Goldbach's Conjecture
- perl模块之Smart::Comments
- iOS7 UIKit Dynamics
- hdu 1394 Minimum Inversion Number_归并排序
- 游戏对象的实现
- 从AndroidManifest.xml中获取已注册Activity的方法
- IOS设计模式的六大设计原则之单一职责原则(SRP,Single Responsibility Principle)
- "海潮"我的排序算法设计
- 寻找素数对
- Unity3D 窗口裁剪