设置新程序的最大难点在于如何设置数据文件,模板,和其它需要的文件的路径。对于每种服务器来说,其设置各异。如果你访问服务器时,仅有FTP权限来安装程序,你就很难确定完整的文件路径。即使你知道了文件路径,当你把程序安装到另外一种服务器上时,你又得修改程序。如果你不同的平台之间跳来跳去,工作量可想而知。
技巧:在Perl中,变量 包含当前执行的脚本所在的完整路径。通过使用一个简单的正则表达式,我们可以削掉最后面的脚本名称,取得脚本所在的当前目录名($cgidir)。然后,我们可以通过使用相对文件路径,读取所有我们需要的文件。(如“ $cgidir/../data/database.db”)。
|
### 找出当前目录路径
if
(=~m#^(.*)#){ $cgidir = ""; } # win/dos
elsif (=~m#^(.*)/# ){ $cgidir = "";
} # Unix
else
{`pwd` =~ /(.*)/; $cgidir = ""; } # Unix
|
第一行可在Windows服务器上,找到cgi目录,其特征是是使用反斜杠来分隔文件路径。第二行可在Unix服务器上找到cgi目录,其特征是使用正斜杠。最后,我们发现很少部分的Unix服务器中的 并不包含完整的文件路径,在这种情况下,我们通过使用Unix的“pwd”命令取得当前目录。
通过使用$cgidir变量,你就不用再担心服务器文件路径了。