9杂

 1.time

use POSIX qw(strftime);
use feature qw(say);
my $time = localtime(time);     #标量上下文返回标量
say $time;
say time;   #time返回时间值

#my ($sec,$min,$hour,$day,$mon,$year-1990,@other) = localtime(time);    #wrong
my ($sec,$min,$hour,$day,$mon,$year,@other) = localtime(time);      #列表上下文返回列表
#say $year+1990."-".$mon.'-'.$day.'-'.$hour.':'.$min.":".$sec;
printf "%d-%d-%d %d:%d:%d\n",$year+1990,$mon,$day,$hour,$min,$sec;  #localtime(time)返回的$year需要加上1990才能得到期望值

$datestring = strftime "%Y-%m-%d %H:%M:%S", localtime;    #直接指定localtime返回值的格式和内容选取
printf("时间日期 - $datestring\n");

2.进程

`CMD`:返回程序执行结果给变量,如@var = `ls`;

system(CMD):直接返回程序执行结果到STDOUT,即屏幕,如system(“ls”);

*不能执行cd等shell内建命令(which 是查不到路径的)

3.getoptions

 

use Getopt::Long;
use Smart::Comments;
GetOptions(    #哈希形式,后面是引用,符合条件,后面的值自动改变
    'verbose+' => \$verbose,    #命令行参数每次出现-verbose或-v时,$verbose+1
    'mark!' => \$mark,    #命令行参数出现-mark时,$mark=1,-nomark时,$mark=0
    'debug=i' => \$debug,    #-debug=2,则$debug=2
    'paraHash=s' => \%paraHash,    
    #-paraHash接收哈希形式的参数,存放到%paraHash里,如-paraHash a=1 -paraHash b="2"
    'paraArray=s' => \@paraArray,
    #-paraArray接收字符串到@paraArray里,如-paraArray='a' -paraArray=1,多个参数时,每个参数都要-paraArra=
    'interge:i' => \$interger,
    #=s表示接收字符串,数字会自当转化为字符串,但如果=i则只能接收数字,不能接收字符串,:i可以不给参数,默认为0
);

4. eval

eval捕获异常到$@中,有两种形式:eval BLOCK({}中的代码是block块),eval expr(字符串表达式,如"ls")。

eval BLOCK编译时检查错误,包括语法错误,eval expr运行时才检查,如果有语法错误,运行时才报错。

两种形式的返回值都是返回最后一行表达式的求值,或使用return关键字显式的返回,如果发生错误,返回undef。

$average = eval { $total / $count}; ## 同 eval {$average = $total / $count};
my $str=eval {return 100};
my $var = 1;
#eval '$var=';  #运行时报错
eval{$var=};    #编译报错
warn $@ if $@;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值