Board logo

标题: 用Perl语句来代替常用的操作系统命令 [打印本页]

作者: cnangel    时间: 2005-8-25 20:06     标题: 用Perl语句来代替常用的操作系统命令

作者:keendom
email: keendom@sina.com
日期:00-6-29 13:27:13

虽然许多CGI程序在不同的服务器上都运行得很好,但是还有一个问题,当程序员需要对文件进行拷贝,改名或删除时,他用的是特定的操作系统上的shell命令,而没有采用perl语句。 (例如, system("cp $file1 $file2");) 这样做仅在Unix下行得通,而且,当你把未经检查的变量传给shell时,还将可能产生潜在的安全隐患。
下面是一些Perl语句,可以用来替换常用的操作系统命令,这些语句可以工作于任何操作系统上。
### 删除
  1. unlink("$cgidir/file.dat");
复制代码
### 改名
  1. rename("$cgidir/oldfile.dat","$cgidir/newfile.dat");
复制代码
### 拷贝
  1. open(FILE1,"<&#36;cgidir/file1.dat");
  2. open(FILE2,">&#36;cgidir/file2.dat");
  3. binmode(FILE1);
  4. binmode(FILE2);
  5. while (<FILE1>) { print FILE2; }
  6. close(FILE1);
  7. close(FILE2);
复制代码
&#35;&#35;&#35; 设置文件权限
  1. chmod(0777,"&#36;cgidir/file.dat");
复制代码
&#35;&#35;&#35; 创建目录
  1. mkdir("&#36;cgidir/newdir",0777);
复制代码
&#35;&#35;&#35; 删除目录
  1. rmdir("&#36;cgidir/newdir");
复制代码
&#35;&#35;&#35; 当前日期/时间
  1. &#36;date = scalar localtime(time);
  2. print &#36;date;
复制代码
通过使用上面介绍的这些技巧,你不仅可以节省时间,而且也可以写出更好的程序。





欢迎光临 星星博客 (http://commerce.huhoo.net/) Powered by Discuz! 7.0.0