Perl 学习笔记(11) -- 进程管理及其他

原创 2012年03月22日 23:38:17

进程管理

  • system. 于linux中的系统函数system类似,将产生一个子进程并返回通过参数传入的命令的结果,在执行结束前父进程一直等待。如果需要后台运行则加&符。system也支持多参数版本,后面的参数作为第一个的命令的执行参数合并进来。
  • exec.类似系统的exec系统函数,执行后新的程序替换当前perl脚本进程的进程空间。
  • 反引号捕获输出结果。$date = `date`; @files = `ls`;
  • 将进程视为文件句柄。将进程作文open函数的文件名参数,在执行的进程的左边或右边加上|,作为于perl进程的输出或输入管道。
    open DATE,"date|" or die "cannot pipe frome date:$!";
    open MAIL,"|mail fred" or die "cannot pipe to mail:$!";
    对以读入方式打开的文件句柄DATE可以像文件读取执行的结果。对以写方式打开的MAIL,写入句柄的内容后,一旦close MAIL则会启动发送mail的过程。
  • fork,waitpid和unix的系统函数类似,fork返回值表示新进程的pid,等于0的为子进程。
  • kill可以通过kill发送信号给指定进程, kill $signo, $pid;进程可以指定子句的信号处理函数,通过对系统哈希%SIG赋值改变信号的默认处理函数,$sig{'signo'}=sighandler;
  • eval捕获程序运行时的异常,让程序继续执行下去。如果有异常发生则会发生的异常的错误信息放到系统变量$@中。如果没有eval捕获,则在出现运行时异常时导致程序直接退出,比如除数为0的异常,die产生的异常。eval一般用于对他人写的代码进行调用,为了防止调用导致异常的问题,而采取的捕获方法。
  • eval可以嵌套使用,内层的eval可先捕获而不抛到外层。eval有四中异常不能捕获:
    • 让perl解释器崩溃的错误,比如内存不足或异常信号
    • 显示调用exit而然程序退出的,但是die可以被捕获,所以一般推进用die;
    • 编译的警告,warn之类的。

其他

  • grep筛选列表, grep 匹配语句,列表;对列表的每一个元素用匹配语句进行筛选,返回筛选结果列表,在匹配语句中用$_代替列表中当前要筛选的元素。
  • map对列表进行转换。map 转换语句,列表; 执行过程和grep类似,对列表的每一个元素调用转换语句进行计算,返回转换后的新列表。
  • 切片split,前面已经提到split返回列表,有时候我们只需要获取返回列表的部分位置的元素,如果为了获取部分元素而新建所有的标量是一种大大的浪费。这里我们引入一种新的列表元素表示法.
    my @names = qw{zero one two three four file six seven eight nine}
    my @numbers = @names[1,4,5,0,3,6];#将列表@names的指定下表的元素赋值给@numbers

相关文章推荐

Perl语言学习笔记 11 Perl模块

1、模块来源:随Perl发行版本一起打包、从CPAN下载 2、阅读模块文档:perldoc CGI 3、安装模块 makemaker方式: 指定安装目录: Module::build...

《Oracle编程艺术》学习笔记(11)-Oracle进程

Oracle实例主要有3类进程(在Windows中,实际上是线程): ·服务器进程(server process):这些进程根据客户的请求来完成工作。服务器进程包括专用服务器和共享服务器。http:...
  • fw0124
  • fw0124
  • 2011年10月23日 23:12
  • 1135

《Linux程序设计》学习笔记11——进程和信号

《Linux程序设计》学习笔记11——进程和信号 分类: 《Linux程序设计》笔记 2009-08-10 16:48 918人阅读 评论(2) 收藏 举报 linuxsi...

操作系统概念学习笔记 11 进程同步(一)

进程同步 互相协作的进程之间有共享的数据,于是这里就有一个并发情况下,如何确保有序操作这些数据、维护一致性的问题,即进程同步。从底层到高级应用,同步机制依次有临界区、信号量、管程、原子事务。多个进程并...

LINUX学习笔记11——进程控制编程

1.         获取本进程ID: pid_t getpid(void),在程序中加入这个函数,就能在程序运行时获取本进程的ID号:printf(“pid=%d”,getpid()); 以整数形式...

TCP/IP网络编程 学习笔记_11 --多进程服务器端

并发服务器首先,我们来假设有下面这样两种类型的服务器:第一种,第一个连接请求的受理时间为1s,第50个连接请求的受理时间为50s,第100个连接请求的受理时间为100s。即同时很多客服端连接,需要依次...

Pro Oracle Database 11g Administration 学习笔记之第五章(管理控制文件和联机日志文件)

Oracle数据库包含三种必须的文件:datafiles(数据文件),control files(控制文件) 和 online redo logs(联机日志文件)。本章主要讲解怎样管理控制文件和联机日...

PMBOK(第五版)学习笔记 —— 11 项目风险管理

PMBOK(第五版)第十一章项目风险管理部分的知识点梳理。

Python 下字符串的提取、分割与删除- 千月的python linux 系统管理指南学习笔记(11)

Python 下字符串的提取、分割与删除 对于文本来讲,提取、分割和删除是我们用的较多的操作。 文本我们可以看成是字符串对象。首先说到的是 in 和 not in操作。 字符串的提取 in 和 n...

oracle11g数据库的管理 学习笔记

一、oracle数据库结构  1.查看所有表空间及对应的数据文件  sqlplus /nolog  conn /as sysdba col file_name for a50;  set l...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Perl 学习笔记(11) -- 进程管理及其他
举报原因:
原因补充:

(最多只允许输入30个字)