perl字符串操作符、system函数及其对系统命令的调用

字符串操作符:Perl中的字符串操作符为 . ,用于将两个字符串拼接起来。此运算产生的字符串可以继续用来运算或储存到变量里。如: 

"hello" . "world" # 等同于 "helloworld" 
"hello" . " " . "world" # 等同于 "hello world" 
'hello world' . "\n" # 等同于 "hello world\n" 

连接运算符必须显式地使用 . 操作符。 



===================================================================================== 



在Perl开发中,通常可以用system函数或``( ~ 下面的那个符号)操作符来执行系统命令(就是dos命令),但注意对alias, bg, bind, break, builtin, cd, command, compgen, complete, continue, declare, dirs, disown,echo, enable, eval, exec, exit, export, fc, fg, getopts, hash, help, history, jobs, kill, let, local, logout, popd, printf, pushd, pwd, read, readonly, return, set, shift, shopt, source, suspend, test, times, trap, type, typeset, ulimit, umask, unalias, unset, wait等shell内部命令(即在文件系统中无执行文件的命令)这样直接执行会出错,错误是无法找到该文件或目录。可以在命令前加sh –c来实现。而对cd、umask等SESSION型命令,应该用PERL的内部函数chdir、umask等来实现功能更可靠。 

如: 

#!perl 
system("md 中国"); # 调用dos命令,在当前目录下建立名为 中国 的空白文件夹 

或者 

#!perl 
my $me="md 中国"; 
system $me; # system后可以有圆括号,也可以没有 
但是,由system()函数调用的系统命令执行的效果和直接在dos下执行并不相同,比如不能在根目录不存在的情况下直接建立根目录和子目录,也不能在有子目录存在的条件下直接删除根目录。例如下面的程序: 

#!perl 
system("md 中国/河南省") 

在目录 中国 不存在的情况下,是无法运行成功的,也就是说,无法生成文件夹 ./中国/河南省

转自:  http://www.douban.com/group/topic/36302374/

你可能感兴趣的:(perl)