Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->编程语言 ->CGI ->正文

Perl在CGI程序设计中常用的函数和指令

来源:Linuxdby.com 作者:Webmaster 时间:2007-04-28 点击: [收藏] [投稿]

  $date=`/usr/bin/date`;
   而在perl5版本中,也可以用下面这一行指令来取得系统时间。
   $date=localtime(time);
--------------------------------------------------------------------------------
指令:die
语法:die LIST
说明:会把LIST字符串显示出来,并退出程序。常常和$!这个代表错误信息的变量一起使用。
范例:
   Open(FILE'"$filename")||die"Cannotopenfile$!n";
   如果打开文件失败的话,就会显示出错误的信息,之后再退出程序。
--------------------------------------------------------------------------------
指令:open
语法:open(Filehandle'"$fiiename")
   其中$filename是一个指定打开的文件名。
说明:这是一个很常用的函数,可用于文件的打开(Read0niy)。在CGI程序设计中常常会打开一个文件来读取数据,所以笔者会详加说明这一个函数的相关用法。这个Filehandle可把它看作在I(Inpnt)/O(Output)间的一个桥梁,可以利用Filehandle来作出数据读入写出的动作。开始可用open这个函数来打开一个指定的文件,接下来可以使用<Filehandle>来读取所打开文件的数据内容,最后一定要用close这个函数来关闭这个之前打开的Filehandle。要注意的是在CGI程序写作中,当用open这个函数来打开文件的时候,一定要在打开的文件前加上文件所在的绝对路径名称。
范例:
   $filename=Vpath/cgi.txt";
   open(FILE'"$filename")||die"Can not open $filename\n";
   #将数据指派给纯量变量$line(一行一行地)
   while($line=<FILE>){
    print"$line";
   }
   close(FILE);
   就会把cgi.txt这个文件的内容显示出来。
--------------------------------------------------------------------------------
语法二:open(Filehandle,"<$filename")
说明:这个语法也可以打开一个存在的文件(Read Only)。
范例:
   $filename="/path/cgi.txt";
   open(FILE,"<$filename")||die"Can not open $filenamen";
   #将<FILE>全部的数据内容都指派给数组@array
   @array=<FILE>;
   close(FILE);
   print"@array";
   也会把cgi.txt这个文件的内容显示出来。
--------------------------------------------------------------------------------
语法三:open(Filehandle,">$filemme)
说明:建立一个新的文件(Write Only),如果已经存在这个文件了,就会把旧文件名覆盖过去。并可用print Filehandle的方式将数据写到所打开的文件中。


范例:
   $filename="/path/cgi.txt";
   open(FILE,">$filename")||die"Can not open $filenamen";
   print FILE"this is a new line1n";  #n是换行字符
   print FILE"this is a new line2n";
   close(FILE);
   会把数据存在一个新文件中。
--------------------------------------------------------------------------------
语法四:Open(Filehandle,">>$filename")
说明:数据用附加的方式写入一文件(Write Only),如果指定的文件名不存在的话,就会建立一个新的文件。
范例:
   $filename="/path/cgi.txt";
   open(FILE,">>$filename")||die"Can not open $filenamen";
   print FILE"this is a newline1n";
   print FILE"this is a newline2n";
   close(FILE);
   会把数据附加(append)到一个文件(cgi.txt)中。
--------------------------------------------------------------------------------
语法五:Open(Filehandle,"|Unix Command")
说明:就会把在Fiiehandle的数据输出给Unix的指令来作处理。
范例:
   $mailprog="/usr/ucb/mail"; #Unix系统上的寄信程序(要加绝对路径哦!)

   $who="jcjung@tem.nctu.edu.tw";
   open(FILE,"|$mailprog$who")||die"CannotFail!n";
   print FILE"想不想我呀?n";
   print FILE"要快一点回信哦!n";
   close(FILE);
   就会通过Unix系统mail的程序,将FILE这个Filehandle的数据内容寄给$who这个变量所指定的收信人。我们可以利用open这个函数来设计一个来信批评指教的CGl应用程序,在本书中的下一章中会有详细的介绍。
--------------------------------------------------------------------------------
指令:close
用法:close(Filehandle)
说明:用open这个函数来打开一个filehandle之后,一定要用close这个函数把所打开的Filehandle关闭。
范例:
   open(Fiiehandle,"$filename");
   close(Filehandle);
--------------------------------------------------------------------------------
指令:pack
语法:pack("指定的格式",LIST)
说明:pack这个函数会将一个LIST变成所指定的二进制数据格式。在CGI程序分割解码过程中,会用到pack这个函数,所以笔者在此简单介绍这个函数的用法。
范例:
   $string=pack("C",65);  #此时$string="A";
   将65这个ASCII码转换成一个unsigned字符,其中C就是指定要转换成unsigned字符的意思。

--------------------------------------------------------------------------------
指令:read
语法:read(Filehandle,$string,length)
   其中length是代表读入字符串的长度(bytes)。说明:用read这个函数把Filehand1e中的数据依指定的字符串长度读入之后指派给$string这个变量。在CGI程序分割解码过程中,如果FORM的传送方式是设定为POST的话,就会将传送的数据设定为标准输入,所以会将数据内容指定给STDIN这个标准输入的Filehandle,而CGI环境变量$ENV{'CONTENT_LENGTH'}就是代表使用者送出数据内容的长度,因此我们要用read这个函数来取得使用者送出的数据内容。
范例:
   read(STDIN,$buffer,$ENV{'CONTENT_LENGTH'});
   就会将STDIN这个标准输入Filehandle中的数据依指定的字符串长度读入,再指派给$buffer这个变量。
--------------------------------------------------------------------------------
指令:exit
语法:exit
说明:退出执行的程序。
范例:
   print"i love perl";
   exit;
   显示出“i love perl"之后,就马上退出这个程序。



 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



上一篇:Perl 新手必读   下一篇:联网调试CGI程序心得

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
Power by linux-cn.com 粤ICP备05006655号