Perl脚本调用的优缺点

Perl脚本在运行时作为一个独立的进程,调用另一个脚本意味着创建一个子进程,这和函数调用有着本质的区别,函数调用是一个进程中执行了一段独立代码。这是特别需要注意的前提,下面总结了这种机制的优缺点。

优点

  1. 并行性。进程之间是独立的、并发的,因此脚本调用脚本时,这两个脚本可以是并行工作的,子脚本又可以调用子脚本,并行性可以无限扩展,运行效率高。
  2. 兼容性。一行命令就能调用其它脚本语言,甚至是系统命令,简洁方便。

缺点

  1. 传参数需要特别检查。调用脚本时传入参数相当于敲命令时加参数,被调用的脚本不会自己主动检查参数是否符合要求,需要写脚本时单独检查。
  2. 调用脚本后没有返回值。一种解决方法是子脚本将信息打印在标准输出,父脚本用反引号捕获这些信息。
  3. 子脚本输出的标准错误信息需要特别处理才能被父脚本捕获。因为反引号语法只能捕获子脚本标准输出,不能捕获标准错误输出。
  4. 后台运行的子脚本不会被Ctrl+C杀死。调用的子脚本如果在后台运行&,它会屏蔽杀死进程的信号,父脚本被杀死后子脚本依旧在运行。
时间: 2024-10-13 02:43:21

Perl脚本调用的优缺点的相关文章

perl 脚本测试

原文  http://blog.csdn.net/johnny710vip/article/details/8905239 这是一篇关于perl脚本测试的总结性文章,其中提到了很多实用的模块,如果文中介绍的不够详细,请到cpan上搜索该模块并查阅其文档.  1基本语法检查 Perl语言的哲学是“There is more than one way to do it”,很多讨厌Perl的人总是拿Perl的这个特性来攻击Perl,而喜欢Perl的人却又极力推崇它.这里不讨论这个特性是好是坏,但不可否

perl脚本学习指南-简略笔记

最近在实习,看着公司有些脚本是perl写,久闻perl处理文本还是很强大的,趁着周末扫了一般这本书~记录下了~ undef 默认未定义字符,perl里面没有NULL,defined($x)函数:如果参数为undef返回false qw(cs phy geo) 类似于 ("cs", "phy", "geo")列表可以赋值给数组@array 数组操作符:pop,push操作末尾,shift,unshift操作开头,reverse逆序,@array =

DBMS_SCHEDULER执行PERL脚本加载数据

1.例子利用oracle 11g 的dbms_scheduler包执行perl脚本加载数据文件,其中主要用到三个过程分别为SET_JOB_ARGUMENT_VALUE,CREATE_JOB,RUN_JOB三个过程,其中三个过程的参数说明如下: create_job参数: Attribute Description job_name Name of the job job_class Name of the job class job_style Style of the job: REGULAR

window-运行perl脚本(搭建health-check环境)

安装vsphere sdk VMware-vSphere-Perl-SDK-5.1.0-780721.exe ##看具体的情况安装对应版本的sdk 修改系统环境变量,将安装路径Perl/bin和Perl/site/bin添加到path变量的后面 cmd到perl脚本目录: perl *.pl  --serrver ip –username name –type vcenter ##vcenter服务器 perl *.pl     --server ip –username name –type

Verilog代码自动缩进和对齐Perl脚本

实验室做FPGA开发时经常用到Verilog,代码规范成为一个问题,于是乎写了一个Perl脚本对代码进行规范化,主要是进行自动缩进和对齐. 代码原理很简单,主要是使用了正则表达式进行匹配和替换. 代码如下,初学Perl,请读者赐教: ##################################################### # 代码缩进对齐脚本 # 功能:对Verilog代码进行自动缩进和对齐处理, # 该版本目前还没有对case语句进行处理 # 更改:增加了对assign的缩进

Perl脚本访问Greenplum数据库安装指导

安装前准备 (1)操作系统(系统上面要安装一些必备的开发工具(比如gcc等)) linux-82:/home/PlODBC # cat/etc/SuSE-release SUSE Linux EnterpriseServer 11 (x86_64) VERSION = 11 PATCHLEVEL = 1 (2)安装所需的软件包 greenplum-connectivity-4.3.0.0-build-2-SuSE10-x86_64.zip --GP官网下载,GP的JDBC和ODBC驱动 DBI-

写的一个perl脚本,用于发送远程MySQL命令

想写一些简化管理操作的脚本,下面是基础脚本之一. 对于一个从来没使用过perl脚本的我来说还是有些难度的,直接上代码. 此脚本用于发送远程MySQL命令并且接收结果,功能比较简单,后面会渐渐完善. #!/usr/bin/perl use Getopt::Long; use DBI; Getopt::Long::GetOptions( 'host|h=s' => \$host, 'user|u=s' => \$user, 'password|pw=s' => \$password, 'po

perl脚本中对数据库的操作

perl中DBI模块为mysql数据库相关操作的接口,首先需要在环境中安装DBI模块.perl处理数据库操作的大致步骤如下:#声明使用DBI模块use DBI;#设置数据库连接参数,指定连接数据库名,数据库所在服务器ip地址,连接用户名,密码# db_name为要连接的数据库名,ip为数据库所在服务器ip地址my $database='DBI:mysql:database=db_name;host=ip';my $user='user_name';my $pw='password';#连接数据库

perl脚本中对字符编码的支持

# 使perl程序支持utf8宽字符编码,不添加下面几行打印中文字符时将出现Wide character in print警告或错误.use utf8;binmode(STDIN, ':encoding(utf8)');binmode(STDOUT, ':encoding(utf8)');binmode(STDERR, ':encoding(utf8)');perl脚本处理中文等字符时,有时从文件读出的数据为字节码,需要进行解码才能正确显示.使用Encode模块即可处理.use Encode;#