⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cgi1.htm

📁 Perl作为一门重要的工程语言
💻 HTM
字号:
<html><!-- #BeginTemplate "/Templates/index.dwt" --><head><meta http-equiv=Content-Type content="text/html; charset=gb_2312-80"><title>ChinaPerl</title>
<LINK rel=stylesheet href=mystyle.css type=text/css>
</head><body>
<table border=0 cellspacing=0 bgcolor=#80FFFF width=100%>
  <tr>
    <td align=left rowspan=2 width=150>
      <div align="center"><img src=image/perl.gif height=85 width="85"></div>
    </td>
    <td align=center><img src=image/perl.gif height=85 width="85"></td>
  </tr><tr>
    <td colspan=2 align=center>&nbsp;</td>
  </tr></table>
<table border=0 width=100% height=400 cellspacing=0 cellpadding=0>
  <tr>
    <td width=20% valign=top bgcolor="#dddddd"> 
<table border=0 width=100% cellpadding=0><tr><td width=5%></td>
          <td width=95%> 
            <p align=center>Perl 5教程<br>
              <a target=_blank href=http://flamephoenix.126.com>by flamephoenix</a><a href="http://perl.yesky.net"><br>
              <font color="red">修订 by RNY<br>
              </font></a>2000-08-30</p>
            <p align=center><a href="index.htm">目录</a></p>
            <p align=center>第一部分 Perl语言</p>
            <p><a href=perl1.htm>第一章 概述</a></p>
            <p><a href=perl2.htm>第二章 简单变量</a></p>
            <p><a href=perl3.htm>第三章 操作符</a></p>
            <p><a href=perl4.htm>第四章 列表和数组变量</a></p>
            <p><a href=perl5.htm>第五章 文件读写</a></p>
            <p><a href=perl6.htm>第六章 模式匹配</a></p>
            <p><a href=perl7.htm>第七章 控制结构</a></p>
            <p><a href=perl8.htm>第八章 子程序</a></p>
            <p><a href=perl9.htm>第九章 关联数组(哈希表)</a></p>
            <p><a href=perl10.htm>第十章 格式化输出</a></p>
            <p><a href=perl11.htm>第十一章 文件系统</a></p>
            <p><a href=perl12.htm>第十二章 引用(指针)</a></p>
            <p><a href=perl13.htm>第十三章 面向对象编程</a></p>
            <p><a href=perl14.htm>第十四章 包和模块</a></p>
            <p><a href=func.htm>附录一 函数集</a></p>
            <p align=center>第二部分 Perl的CGI应用</p>
            <p><a href=cgi1.htm>第一章 cgilib例</a></p>
            <p><a href=cgi2.htm>第二章 动态创建图像</a></p>
            <p><a href=cgi3.htm>第三章 计数器的编写方法</a></p>
            <p><a href=cgi4.htm>第四章 Web Server设置</a></p>
            第五章、...<br></td></tr></table></td>
    <td width=80% valign=top>
      <div align="center"></div>
      <table border=0 width=100% cellpadding=0>
        <tr bgcolor="#00FF80"> 
          <td colspan="2"> 
            <div align="center"> Perl教程 | <a href="perl5manual.zip">下载全文</a> 
              | <a target=_blank href=http://www.turbolinux.com.cn/cgi-bin/linux/wwwthreads.pl?action=list&Board=perl>Perl论坛</a> 
              | <a href="http://perl.yesky.net">推荐站点</a> | 关于我们 </div>
          </td>
        </tr>
        <tr> 
          <td colspan="2"><!-- #BeginEditable "body" --> 
            <p align=center>第一章 cgilib例(未定稿)</p>
            <p align=center><a target=_blank href=http://flamephoenix.126.com>by 
              flamephoenix</a></p>
            一个简单的读取并处理表格请求数据的cgilib.pl例子:<br>
            <br>
            #!/usr/bin/perl<br>
            <br>
            sub readGetData{<br>
            &nbsp;&nbsp;&nbsp;&nbsp;<b># 指定局部变量queryString用以保存和传递函数的参数</b><br>
            &nbsp;&nbsp;&nbsp;&nbsp;local(*queryString) = @_ if @_;<br>
            &nbsp;&nbsp;&nbsp;&nbsp;<b># 读取环境变量QUERY_STRING的值赋给变量$queryString</b><br>
            &nbsp;&nbsp;&nbsp;&nbsp;$queryString = $ENV{"QUERY_STRING"};<br>
            &nbsp;&nbsp;&nbsp;&nbsp;return 1;<br>
            }<br>
            <br>
            sub readPostData{<br>
            &nbsp;&nbsp;&nbsp;&nbsp;local(*queryString)=@_ if @_;<br>
            &nbsp;&nbsp;&nbsp;&nbsp;local($contentLength);<br>
            &nbsp;&nbsp;&nbsp;&nbsp;<b># 读取环境变量CONTENT_LENGTH的值</b><br>
            &nbsp;&nbsp;&nbsp;&nbsp;$contentLength = $ENV{"CONTENT_LENGTH"};<br>
            &nbsp;&nbsp;&nbsp;&nbsp;<b># 检查是否有数据</b><br>
            &nbsp;&nbsp;&nbsp;&nbsp;if($contentLength){<br>
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b># 从设备STDIN读取contentLength长度的字符赋给$queryString</b><br>
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;read(STDIN,$queryString,$contentLength);<br>
            &nbsp;&nbsp;&nbsp;&nbsp;}<br>
            &nbsp;&nbsp;&nbsp;&nbsp;return 1;<br>
            }<br>
            <br>
            sub readData{<br>
            &nbsp;&nbsp;&nbsp;&nbsp;local(*queryString) = @_ if @_;<br>
            &nbsp;&nbsp;&nbsp;&nbsp;<b># 读取环境变量REQUEST_METHOD</b><br>
            &nbsp;&nbsp;&nbsp;&nbsp;$requestType=$ENV{"REQUEST_METHOD"};<br>
            <br>
            &nbsp;&nbsp;&nbsp;&nbsp;<b># 如果请求方式为GET则使用函数readGetData</b><br>
            &nbsp;&nbsp;&nbsp;&nbsp;<b># 否则如果请求方式为POST则使用函数readPostData</b><br>
            &nbsp;&nbsp;&nbsp;&nbsp;if($requestType eq "GET"){<br>
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&readGetData(*queryString);<br>
            &nbsp;&nbsp;&nbsp;&nbsp;}<br>
            &nbsp;&nbsp;&nbsp;&nbsp;elsif($requestType eq "POST"){<br>
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&readPostData(*queryString);<br>
            &nbsp;&nbsp;&nbsp;&nbsp;}<br>
            &nbsp;&nbsp;&nbsp;&nbsp;return 1;<br>
            }<br>
            <br>
            sub DecodeData{<br>
            &nbsp;&nbsp;&nbsp;&nbsp;local(*queryString)= @_;<br>
            &nbsp;&nbsp;&nbsp;&nbsp;<b># 把加号转换成空格</b><br>
            &nbsp;&nbsp;&nbsp;&nbsp;$queryString=~s/\+/ /g;<br>
            &nbsp;&nbsp;&nbsp;&nbsp;<b># 转换十六进制字符</b><br>
            &nbsp;&nbsp;&nbsp;&nbsp;$queryString=~s/%(..)/pack("c",hex($1))/ge;<br>
            &nbsp;&nbsp;&nbsp;&nbsp;return 1;<br>
            }<br>
            <br>
            sub parseData{<br>
            &nbsp;&nbsp;&nbsp;&nbsp;local(*queryString,*formData) = @_ if @_;<br>
            &nbsp;&nbsp;&nbsp;&nbsp;local($key,$value,$curString,@tmpArray);<br>
            <br>
            &nbsp;&nbsp;&nbsp;&nbsp;<b># 以&为分隔符把字符串转换成键-值对</b><br>
            &nbsp;&nbsp;&nbsp;&nbsp;@tmpArray = split(/&/,$queryString);<br>
            <br>
            &nbsp;&nbsp;&nbsp;&nbsp;<b># 在数组@tmpArray内循环</b><br>
            &nbsp;&nbsp;&nbsp;&nbsp;foreach $curString(@tmpArray){<br>
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b># 以=为分隔符分开键-值对</b><br>
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;($key,$value) = split(/=/,$curString);<br>
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b># 解码</b><br>
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&DecodeData(*key);<br>
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&DecodeData(*value);<br>
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b># 把键和值加到字典中</b><br>
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$formData{$key}=$value;<br>
            &nbsp;&nbsp;&nbsp;&nbsp;}<br>
            &nbsp;&nbsp;&nbsp;&nbsp;return 1;<br>
            }<br>
            <br>
            1;<br>
            #end of file cgilib.pl<br>
            <br>
            <br>
            <b>使用方法:</b><br>
            <br>
            要使用此库需含下列语句:<br>
            #require "cgilib.pl";<br>
            表格数据处理:<br>
            %dataDict=();<br>
            &readData(*data);<br>
            &parseData(*data,dataDict);<br>
            字典数据处理:<br>
            while(($key,$value)=each(%dataDict)){<br>
            &nbsp;&nbsp;&nbsp;&nbsp;print $key,"=",$value,"\n\n";<br>
            }<br>
            <br>
            <p></p>
            <p align=center><a href=cgi2.htm>下一章</a> <a href=index.htm>目录</a></p>
            <p align=center>&nbsp; </p>
            <!-- #EndEditable --></td>
        </tr>
      </table>
    </td></tr></table></body><!-- #EndTemplate --></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -