用Perl語句來代替常用的操作系統命令

- 中國WEB開發者網絡 (http://www.webasp.net)
-- 技術教程 (http://www.webasp.net/article/)
--- 用Perl語句來代替常用的操作系統命令 (http://www.webasp.net/article/8/7786.htm)
-- 作者:未知
-- 發佈日期: 2003-09-13
雖然許多CGI程序在不同的服務器上都運行得很好,但是還有一個問題,當程序員需要對文件進行拷貝,改名或刪除時,他用的是特定的操作系統上的shell命令,而沒有採用perl語句。 (例如, system("cp $file1 $file2");) 這樣做僅在Unix下行得通,而且,當你把未經檢查的變量傳給shell時,還將可能產生潛在的安全隱患。

下面是一些Perl語句,可以用來替換常用的操作系統命令,這些語句可以工作於任何操作系統上。

### 刪除

unlink("$cgidir/file.dat");


### 改名

rename("$cgidir/oldfile.dat","$cgidir/newfile.dat");


### 拷貝

open(FILE1,"<$cgidir/file1.dat");

open(FILE2,">$cgidir/file2.dat");

binmode(FILE1);

binmode(FILE2);

while (<FILE1>) { print FILE2; }

close(FILE1);

close(FILE2);


### 設置文件權限

chmod(0777,"$cgidir/file.dat");


### 創建目錄

mkdir("$cgidir/newdir",0777);


### 刪除目錄

rmdir("$cgidir/newdir");


### 當前日期/時間

$date = scalar localtime(time);

print $date;



通過使用上面介紹的這些技巧,你不僅可以節省時間,而且也可以寫出更好的程序。



--------------------------------------------------------------------------------

webasp.net