收藏本站 收藏本站
积木网首页 - 技术学院 - 软件测试 - 网站黄页 - 常用手册 - 站长工具 - 技术社区
首页 > perl > 正文

首页 - PHP - 数据库 - 操作系统 - 游戏开发 - JS - Android - MySql - Redis - MongoDB - Win8 - Shell编程 - DOS命令 - jQuery - CSS样式 - Python - Perl

Access - Oracle - DB2 - SQLServer - MsSql2008 - MsSql2005 - Sqlite - PostgreSQL - node.js - extjs - JavaScript vbs - Powershell - Ruby

perl中使用signal(信号)实例

使用signal,能让你的程序功能更丰富。要在Linux下列出所有的signal, 利用kill -l即可。 下面是我机器上的输出(后面还有到64的没列出来):

xuyang@xuyang-desktop:/$ kill -l

1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP

6) SIGABRT 7) SIGBUS 8 ) SIGFPE 9) SIGKILL 10) SIGUSR1

11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM

16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP

21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ

26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR

31) SIGSYS

其中每个signal在这里有介绍.
下面是一个例子,禁止ctrl+c (ctrl+c 会产生一个INT信号给当前程序) 来关闭当前程序

sub INT_handler {

print("Don't Interrupt!n");

}

$SIG{'INT'} = 'INT_handler'; #another way is $SIG{'INT'} = &INT_handler ;

for ($x = 0; $x < 10; $x++) { print("$xn"); sleep 1; }

其中的%SIG 是perl内置的hash,专门用来处理信号的。如果要ignore某个信号,可以写成

$SIG{‘INT'} = ‘IGNORE' ;

要恢复成缺省的情况,利用
$SIG{‘INT'} = ‘DEFAULT' ;

要发送一个ctrl+c 给某个程序,除了使用ctrl+c 以外,还可以键入
kill -s INT .

比较有实用价值的是SIGUSR1, SIGUSR2, 这两个signal是自定义的。你可以在你的程序用用任意方式来处理这两个信号。而当你想要触发这个信号的时候,只需要在linux下键入
kill -s USR1 pid

就可以触发这个信号处理程序,你可以在这个信号处理程序中打开和关闭调试信息,或者切换工作模式等等。当然因为signal是操作系统的功能,所以这里的变成语言不仅仅对perl适用,对其他的语言也适用。只是语法不同而已。

python urllib中的编码处理示例
importurllibdata='丽江'printdata丽江data'xe4xb8xbdxe6xb1x9f'urllib.quote(data)'%E4%B8%BD%E6%B1%9F'那我们想转回去呢?urllib.unquote('%E4%B8%BD%E6%B1%9F')'xe4xb8xbdxe6xb1x9f'pri

Perl中的10个操作日期和时间的CPAN模块介绍
能够操控日期和时间对于大多数编程语言来说是基本的能力,Perl也不例外。但是在碰到与时间相关的更加复杂的处理时,Perl自带的功能常常就显得力不

Perl命令行应用程序详解
perl-PracticalExtractionandReportLanguage,Perl有很多命令行参数,通过它可以让你的程序更简练,并且可以写出很多只有一行命令的perl。在这篇文章里我们来了

本周排行

更新排行

强悍的草根IT技术社区,这里应该有您想要的! 友情链接:b2b电子商务
Copyright © 2010 Gimoo.Net. All Rights Rreserved  京ICP备05050695号