• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

寒假【perl语言学习脚本】16.1 16.2 16.3 16.4

原作者: [db:作者] 来自: [db:来源] 收藏 邀请


#!/usr/bin/perl -w
chdir ‘/home/zhangjingjing’ or die “can’t chdir to /home/zhangjingjing directory:!";execls,lordie"cantexecls:!"; exec 'ls','-l' or die "can't exec ls:!”;
#第一行的程序代码会将当前工作目录切换到根目录,它的名称总是固定的
#第二行使用了多参数的exec函数来将结果传递到标准输出
#exec函数导致perl进程自己去执行任务,

例如:要运行/tmp目录下的bedrock命令并带上-o args以及程序本身所调用的参数:

chdir ‘/tmp’ or die “Cannot chdir /tmp:$!”;

exec ‘bedrock’, ‘-o’, ‘args1’, @ARGV;


#!/usr/bin/perl -w
open STDOUT,’>’,‘ls.out’ or die “can’t write to ls.outL!";openSTDERR,>,ls.errordie"cantwritetols.err:!"; open STDERR,'>','ls.err' or die "can't write to ls.err:!”;
chdir ‘/home/zhangjingjing’ or die “can’t chdir to /home/zhangjingjing directory:!";execls,lordie"cantexecls:!"; exec 'ls','-l' or die "can't exec ls:!”;
#程序的前两行会重新打开STDOUT和STDERR并将它们重定向到当前工作目录下的两个文件里(在切换工作目录之前)
#在工作目录切换之后,将会执行显示目录清单里的命令,并把数据传送到之前打开的两个文件里

#!/usr/bin/perl -w
print date;
if (date=~/\AS/){
print “go play!\n”;
}else{
print “get to work!\n”;
}
#因为Saturday周六和Sunday周日都是以S开头,而且date命令的输出结果又是以“今天是星期几”作为开始
#所以只要检查date命令的输出,看看它是否以S开头就可以了
#可以将模式换成/\A(Sat|Sun)/

\A: 匹配字符串的绝对开头


#!/usr/bin/perl -w
use 5.010;
sub my_hup_handler {state n;saycaughtHUP:,++n; say 'caught HUP:',++n}
sub my_usr1_handler {state n;saycaughtUSR1:,++n; say 'caught USR1:',++n}
sub my_usr2_handler {state n;saycaughtUSR2:,++n; say 'caught USR2:',++n}
sub my_usr2_handler {say ‘caught INT.Exiting.’;exit}
say " I am $$";
foreach my $signal (qw(int hup usr1 usr2)){
$SIG{uc KaTeX parse error: Expected 'EOF', got '}' at position 7: signal}̲="my_{signal}_handler";
}
while(1){sleep 1};
#我们需要另外打开一个终端会话来运行程序以发送信号
$ kill -HUP 61203
$perl -e ‘kill HUP => 61203’
$perl -e ‘kill USR2 => 61203’
#该程序的输出显示每次信号来到时我们已经见过的次数:
KaTeX parse error: Expected 'EOF', got '#' at position 144: …t INT.Exiting. #̲让它能捕获信号并报告之前收到该…kill -USR1 12345

#要捕获某些信号,就要设置信号处理句柄,做一些重复性的工作,对每个信号处理句柄子程序,都设置一个state变量
#这样每次调用子程序时都可以访问之前累计的数字
#用foreach循环一次将正确的子程序名称赋值给%SIG中的适当值
#最后创建一个无限循环,让程序一直运行着,准备接收信号


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Perl默认变量==发布时间:2022-07-22
下一篇:
perl跳过前四行发布时间:2022-07-22
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap