perl常用函数和符号(文件测试与进程管理)

发布时间:2019-08-21编辑:脚本学堂
本文分享下,perl语言中常用的一些函数与符号,包括文件测试与进程管理两部分内容,有需要的朋友参考下。

一,perl进行文件测试

Perl文件操作,可以先测试文件是否存在,是否可读写等。
例如:
 

复制代码 代码示例:
$x="abc.txt";
if(-e $x) { #abc.txt是否存在?
# 存在操作
} else {
 printf "文件不存在。n";
}

-e 操作符用于测试文件或目录是否存在。

perl文件测试操作符的清单:
 

文件测试       测试操作符提供的信息
-r     文件或目录可读
-w   文件或目录可写
-x    文件或目录执行
-o    文件或目录归用户所有
-R    文件或目录对真正用户可读
-W 文件或目录对真正用户可写
-X    文件或目录对真正用户执行
-O   文件或目录归真正用户所有
-e    文件或目录存在
-z    文件存在且大小为0
-s    文件或目录存在且不为0(返回字节数)
-f     文件为普通文件
-d    文件为目录
-l     文件为符号链接
-p    文件为命名管道(FIFO)
-S    文件为一个套口(socket)
-b    文件为块特殊文件
-c    文件为字符特殊文件
-t     打开tty控制台的文件句柄
-u    文件或目录是设置用户ID号
-g    文件或目录是设置用户组ID号
-k    文件或目录的sticky位置位
-T    文件是文本文件
-B    文件是二进制文件
-M 以天为单位的存在时间
-A    以天为单位访问时间
-C    以天为单位同代码更改时间

删除文件
Perl的 unlink() 操作符可实现删除文件。如:
unlink("abc.txt"); # 删除abc.txt

文件重命名
Perl的rename()操作符可实现文件重命名。如:
rename("abc","aka") || die "出错,不能更名";
此时将文件 abc 更名为 aka,成功返回真,否则给出出错提示。

目录操作
Perl中处理目录非常类似于对文件的处理
打开目录句柄:
opendir(ETC,"/etc")||die "出错,不能打开目录";

关闭目录句柄
closedir(ETC);

创建目录:
mkdir("aka",0777)||die "不能创建 aka 目录";
0777 为文件权限描速数。

删除目录:
rmdir("aka") || die "不能删除 aka 目录"。

二,进程管理
当向系统 shell 发送一个命令行时,Shell 创建一个进程来执行这个命令。
这个新进程成为 Shell 的子进程,它的执行不依赖于 Shell 但又与 Shell 相互协调。
同样,Perl程序也能启动新进程。

使用system()和exec()
生成新进程的最简单的方法就是用 system 操作符。如:
system("date");
若要将输出送至now_day文件,则可以:
system("date>now_day") || die "不能建立now_day文件";

使用单引号
产生进程的另一方法是将 Shell 命令置于两个单引号之间。如:
$nowday="现在时间:".'date'
$nowday 的值为“现在时间:”和linuxjishu/14052.html target=_blank class=infotextkey>date命令的结果的连接。即:"现在时间:Fri Feb 18 23:49:23 PDT 1998"

综合实例:
要求从date的输入中分析,周未时打印"周未了,轻松一下",否则打印"努力工作"。

例子:
 

复制代码 代码示例:
if('date'=~/^S/){
    printf "周未了,轻松一下n";
} else {
    printf "努力工作n"
}
 

date 的输出格式第一个字节为星期,英语中恰好只有周未为 "S" 打头,因此使用了常规表达式判断第一个字符是否为S,即可达到要求。