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语言入门(第五版) 读书笔记(十)---进程管理

第十六章 进程管理 1. system函数  system "ls -l \$HOME";  #启用shell子进程  system "netstat -ap &"; #后台运行  system 'f...
  • wangwenwen
  • wangwenwen
  • 2013年12月19日 18:16
  • 784

perl 中的进程管理

use POSIX ":sys_wait_h"; my $j = 1; for ($j=1;$j
  • bob_hu924
  • bob_hu924
  • 2012年02月06日 10:23
  • 295

Perl 多进程与多线程编程

PERL 多进程与多线程编程能大大加快程序执行效率(将一个任务分割成若干小任务并行处理)。要进行多进程和多线程编程则分别需要两个模块, fork()和Threads,然而fork()则为PERL内置函...
  • qium2014
  • qium2014
  • 2015年11月09日 22:51
  • 3467

perl 多线程及信号控制

#!/usr/bin/perl use strict; use warnings; use threads; use Thread::Semaphore; my $max_thread = 5; m...
  • skenoy
  • skenoy
  • 2015年02月04日 11:09
  • 1410

Perl模块的三种安装方法

一般来说,安装perl模块常见有源码、CPAN命令、包管理工具等三种方法,本文以安装Net::Telnet模块为例,简单的介绍一下这三种方法。 第一种,直接去CPAN官网下载源码包安装,详细的安...
  • dc_726
  • dc_726
  • 2013年02月22日 21:55
  • 2852

Perl语言入门笔记 第十六章 进程管理

=pod 第十六章 进程管理 身为程序员最棒的一面,就是能运行别人的程序,不必自己动手去写。 在perl里有一句话叫 “办法不止一种” system函数: 在perl中,启动子进程最简单的...
  • q1241580040
  • q1241580040
  • 2015年09月21日 02:08
  • 362

Perl笔记14、进程管理

system 函数 system函数是Perl中启动子进程最简单的方法。如下调用linux的date命令: system "date" 它会创建一个子进程来运行date命令,并且这个子进程继承了Per...
  • lanyanai
  • lanyanai
  • 2013年10月14日 12:54
  • 520

Perl语言学习笔记 11 Perl模块

1、模块来源:随Perl发行版本一起打包、从CPAN下载 2、阅读模块文档:perldoc CGI 3、安装模块 makemaker方式: 指定安装目录: Module::build...
  • lanjianhun
  • lanjianhun
  • 2014年08月17日 14:21
  • 603

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

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

进程和线程的基础知识——Python学习笔记11

基础知识一个可执行文件就是一个菜谱。进程是执行程序的过程,类似于按照食谱,真正去做菜的过程。 当计算机开机的时候,内核(kernel)只建立了一个init进程。剩下的所有进程都是init进程...
  • qq_34169823
  • qq_34169823
  • 2017年09月18日 11:36
  • 41
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Perl 学习笔记(11) -- 进程管理及其他
举报原因:
原因补充:

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