Perl学习文档——Perl高级功能(CGI编程)《Perl编程24学时教程》

Cgi编程

<!--[if !supportLists]-->1. Perl用于cgi(基础配置):<!--[endif]-->

<!--[if !supportLists]-->l <!--[endif]-->Web应用程序的B/SBrowser/Server)结构

静态html网页;

服务器端脚本(asp, php, jsp, ruby等);

Cgi程序:Web服务器用来在服务器上运行程序以生成Web内容的公认的方法(common gateway interface),与服务器端脚本很相似。当客户机浏览器访问cgi程序的url时,服务器运行该cgi程序,生成html内容返回给客户的浏览器并显示。

可以使用多种语言编写cgi程序:perl, C, Unix Shell等等,选择perl是因为其强大的文本处理功能;

Cgi程序生成的Web内容可以为文本、图形、压缩文件、视频等

<!--[if !supportLists]-->l <!--[endif]-->Cgi运行环境的搭建:

需要安装Web Server,能够解析运行php程序的Apache HTTP Server可以配置成可运行perl编写的cgi程序,详细配置过程查看相关教程;(这样只需一个Apache Server即可)

<!--[if !supportLists]-->l <!--[endif]-->编写Perlcgi程序

例子(可以保存为hello.plhello.cgi或其他后缀名<需要在Apachehttpd.conf设置cgi-script脚本的后缀>)

#!C:\perl\bin\perl –w

此路径必须添加,表示perl解释程序安装的路径

use CGI qw(:standard);

使用perlcgi模块

use strict;

print header;

cgiheader函数,输出一个标准标题,server以及browser看到它才能处理cgi程序

#! must use 'my' to define a variable

my $now_string = localtime();

print "<b>Hello, CGI using Perl!</b><br/>It's $now_string NOW!<br />";

输出html内容

<!--[if !supportLists]-->l 运行perlcgi程序:<!--[endif]-->

可以在命令行下输入perl hello.pl显示结果为

Content-Type: text/html

以及print后的所有内容;

如果在浏览器的browser中输入该程序的url后,如http://localhost/hello.cgi

则会显示网页内容。

<!--[if !supportLists]-->2. 借助Perl强大的字符文本处理、“胶水语言” 功能、以及丰富的模块,将其用作服务器端的脚本语言,可以用来编写功能更加强大的Web应用程序(相对于php等,如可以实现html crawlerhtml/xml parser等)。<!--[endif]-->

<!--[if !supportLists]-->1) <!--[endif]-->表单提交form(php的类似)

含有表单的html文件,其中方法为getpost, action为处理表单提交数据的cgi程序的url

单击submitbutton,各个域的内容提交给cgi程序处理,cgi程序通过param函数接受参数的值(不带参数返回域的名字列表;以某个域的名字为参数返回该域传来的值);

注意:http的消息传输均为明文,安全其期间,可加密后传输(如md5加密);

<!--[if !supportLists]-->2) <!--[endif]-->创建多页窗体的方法,类似与wizard

采用html的隐藏域;<input type=”hidden” …>

告知下一页“是从当前页过去的”

<!--[if !supportLists]--><!--[endif]-->3) HTTP通信介绍:

BrowserWeb Server(ApacheIIS)的通信遵循HTTP协议,该协议目前两个版本HTTP 1.0/HTTP 1.1

Browser的地址栏中输入URL并连接Web Server后,便向Web Server发送HTTP请求,初始消息类似下面的形式:

GET http://www.google.com/ HTTP/1.0

Connection: Keep-Alive

Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png, */*

Accept-Charset: iso-8859-1, *, utf-8

Accept-Encoding: gzip

Accept-Language: en, en-GB, de, fr, ja, ko, zh

Host: www.google.com:80

User-Agent: Mozilla/4.51 [en]C-c<chmetcnv w:st="on" unitname="F" sourcevalue="32" hasspace="False" negative="False" numbertype="1" tcsc="0">32f</chmetcnv>404p {WinNT; U}

Web Server的应答信息通常为如下形式:

GET http://www.google.com/ --> 200 OK

Date: Mon, 21 May 2007 10:47:20 GMT

Server: GWS/2.1

Content-Length: 777324

Content-Type: text/html; charset=ISO-8859-1

Last-Modified: Mon, 21 May 2007 10:47:20 GMT

人工模仿该过程:

使用telnet,命令行下输入:

telnet www.google.com 80

连接成功後在输入:

GET http://www.google.com/ HTTP/1.0

两次回车,即可看到GoogleWeb ServerHTTP响应,及HTML源码

<!--[if !supportLists]--><!--[endif]-->4) perlcgi程序返回非文本信息:

perlcgi程序中print header; 默认的Content-Typetext/html

可修改header的参数,是的cgi程序向浏览器输出非文本信息,如:

Print header (-type =>MIME_type)
MIME_type
可以为:text/plain, image/gif, image/jpeg, 甚至application/appname(指应用程序appname特定的数据)

例子:

可以动态地输出图片:

<img src=”/cgi-bin/daily-image.cgi”>

这是daily-image.cgiperl程序中,需要print header (-type =>image/jpeg)

<!--[if !supportLists]-->5) 调用perlcgi程序的3种方法:<!--[endif]-->

<a href=’http://server/cgi-bin/perl.cgi’>hyperlink<a>

<img src=’/cgi-bin/daily-image.cgi’>

<form method=’get/post’ action=’http://server/cgi-bin/perl.cgi’>

可以将参数传给cgi程序

http://server/cgi-bin/perl.cgi?name=hemin&sex=male

如果参数含有转义字符,如空格、引号等

可以使用escape函数,如

http://server/cgi-bin/perl.cgi?name=escape($name)

<!--[if !supportLists]-->6) 服务器端包含程序SSI,需要Web Server设置,并浏览器支持<!--[endif]-->

通常为.shtml结尾,可以设置;

含有html注释的html文件;

注释部分即为SSI程序代码;

当浏览器URL访问该页时,Web Server分析注释的脚本并生成html,全部返回给浏览器;

Perl可以用来写SSI代码,潜入到html页面中

SSI挺像PHP等服务器端脚本的,只是它shtml结尾)

使用详情请看相关教程

<!--[if !supportLists]-->7) 更好地使用Perlcgi程序,可以查看cgi模块的帮助文档,含有许多函数的用法,完成不同的高级的功能;

<!--[endif]-->

Perldoc cgi或者查看cgihtml帮助文档

Perlcgi程序来完成重定向,它是天衣无缝的!

Print redirect (-url =>$target);

(不像JavaScriptwindow.location.hrefHTML中的<meta http-equiv=’refresh’>产生的重定向,有明显的延迟)

<!--[if !supportLists]-->8) <!--[endif]-->前面有,使得多个页面之间建立关系<图书馆借书的例子,很形象,下一步的操作时能够知道上一步进行到什么程度>(即知道该页面是由前一个页面过来的)可以使用两种方法:1为前面介绍的htmlinput隐藏域;另一种可以使用cookie<理解cookie,就像电影票,火车票一样>

浏览器访问Web服务器,服务器程序可以创建cookie,并发送保存到浏览器,客户端的用户机器里;用户下次访问是,服务器可以检索cookie,知道客户的信息等。

关于cookie

创建、使用、检索(查看)、中止时间、返回服务器设置等

存在的问题局限性

参看21

<!--[if !supportLists]-->9) <!--[endif]-->使用cgi发送电子邮件,看22章;

<!--[if !supportLists]-->10) <!--[endif]-->特殊的技术:

<23>

服务器推送技术,即页面定时显示不同内容;

客户机拖拉技术;

关于浏览器计数;

<24>

网络爬虫(LWP:Simple模块获得网页的内容;接着分析网页的结构;使用Perl提取出想要的东西)可以使用HTML以及XML的处理模块,方便分析。

关于Perl CGI学习,很好的实例网站: http://slashdot.org

(用到了perl, 以及服务器端包含程序SSI)

24学时掌握Perl编程 本文还有配套的精品资源,点击获取 简介:《PERL编程24学时教程》为初学者及中级程序员提供了深入学习Perl语言的全面资源。教程通过24学习模块,涵盖基础语法、数据结构、文本处理、文件操作、函数定义及面向对象编程等关键主题。每个模块着重于一个主题,帮助学习者逐步构建起Perl编程的坚实基础,并通过实例学习提升解决实际问题的能力。 1. Perl基础语法学习 ... 阅读详情

相关推荐

24小时掌握Perl编程实战教程

本文还有配套的精品资源,点击获取 简介:Perl是一种功能丰富的编程语言,以其在文本处理方面的强大能力而著称。本教程为初学者设计,旨在24小时内快速掌握Perl的基础知识和编程技能。课程内容包括环境配置、语法基础、正则表达式、文件操作、面向对象编程、模块使用、错误处理、网络编程以及数据库交互等。通过实践练习,学员可以快速提升编程能力,并了解Perl在系统管理和Web开发中的...

weixin_42230607的博客 1022

Perl基础教程(cgi)

Perl是Practical Extraction and Report Language的缩写,它是由Larry Wall设计的,并由他不断更新和维护,用于在UNIX环境下编程

PERL 编程24学时教程(PDF).zip

PERL 编程24学时教程(PDF).zip

PLEAC-Perl 教程 - CGI Programming (Perl进阶者极力推荐)

19. CGI Programming<!--google_ad_client = "pub-5143338080895292";/* 728x90, created 4/10/08 */google_ad_slot = "6675122003";google_ad_width = 728;google_ad_height = 90;//--> <script ty

OpenBSD 咨询与维护 1688

PERL编程24学时教程-读书笔记(二)

<br /><br />15.$#arrayname表最后一个元素的索引号,可修改表示截断或增加undef元素<br />16.$size = @arrayname 表数组长度(上下文)<br />17.$array[-1] = $array[$#array]<br />18.acalar(@array)标量上下文<br />19.文件结尾,UNIX:Ctrl+D;windows:Ctrl+z(两次)<br />20. @stars = "*" x 100 表示100个*的数组<br />21.逗号,运算符

mangol的专栏 459

Perl/CGI脚本语言编程学习资源下载地址大全

 Perl/CGI脚本语言编程学习资源下载地址大全Practical Extraction and Report LanguagePerl 最初的设计者为拉里·沃尔(Larry Wall),它于1987年12月18日发表。Perl借取了C、sed、awk、shell scripting以及很多其他程序语言的特性。Perl 一般被称为“实用报表提取语言”(Pr

创造属于自己的一片天空 2029

使用Perl编写CGI程序(前后端)

说明CGI(Common Gateway Interface) 是WWW技术中最重要的技术之一,有着不可替代的重要地位。CGI是外部应用程序(CGI程序)与WEB服务器之间的接口标准,是在CGI程序和Web服务器之间传递信息的过程。CGI规范允许Web服务器执行外部程序,并将它们的输出发送给Web浏览器CGI将Web的一组简单的静态超媒体文档变成一个完整的新的交互式媒体。Common Gatew...

芸灵fly的博客 5190

cgi or mod_perl

摘自perlmonks.org( http://www.perlmonks.org/?node_id=518869)的一段讨论:Re: cgi or mod_perlby astaines on Dec 24, 2005 at 10:12 UTCA good question, but, at least partly, the wrong question. CGI is a useful lo

Alvin's Tech Blog 1254

Perl编程24学时教程》试题

Perl编程24学时教程》试题一、单选题1、以下哪一个字符串直接量的定义方式是错误的( )(1)thank you(2)" "(3)"a "friend" of yours"(4)"a /"friend/" of yours"2、以下哪一条语句是错误的( )(1)$_= hello world;(2)$a=hello world;(3)my $b,$a=hello world;(

1246

perl学习笔记 (1)perl常识

h1 {font-size:x-large;} dt {font-weight:bold; font-size:large;} perl是什么、能干什么 perl是一门比较古老的语言,由Larry Wall在1988年发明。当前版本为5.9.4,稳定版本为5.8.8。 很难一下子解释清楚perl是什么。在网上你会看到“黑

边学边写 990

Perl CGI六天入门

点击index.html就可打开网页进入目录,适合初级入门。 第一天 1.1 Unix环境 1.2 chmod命令 1.3 定位Perl和sendmail 第二天 2.1 使用Emacs 2.2 Perl简介 2.3 HTML FORM 第三天 3.1 回应脚本 3.2 脚本解释 3.3 BODY部分 第四天 4.1 email子过程 4.2 写文件 4.3 建立log文件 第五天 5.1 留言板CGI代码 5.2 代码详解 5.3 读取log文件 第六天 6.1 设置口令 6.2 计数器

PERL编程24学时教程.pdf

目 录 译者序 前言 第一部分 Perl基础 第1学时 Perl入门 3 1.1 安装Perl 3 1.1.1 等一等,也许你已经安装了Perl 4 1.1.2 在Windows 95/98/NT上安装Perl 5 1.1.3 在UNIX上安装Perl 6 1.1.4 在Macintosh系统上安装Perl 7 1.2 文档资料 7 1.2.1 某些特殊的文档资料举例 8 1.2.2 如果无法找到文档该怎么办 9 1.3 编写你的第一个Perl程序 9 1.3.1 键入程序 9 1.3.2 运行程序 9 1.3.3 程序正确将会发生什么情况 10 1.3.4 Perl程序的具体运行过程 10 1.3.5 必须知道的一些情况 11 1.4 课时小结 12 1.5 课外作业 12 1.5.1 专家答疑 12 1.5.2 思考题 12 1.5.3 解答 13 1.5.4 实习 13 第2学时 Perl的基本构件:数字和 字符串 14 2.1 直接量 14 2.1.1 数字 14 2.1.2 字符串 15 2.2 标量变量 16 2.3 表达式和运算符 18 2.3.1 基本运算符 18 2.3.2 数字运算符 19 2.3.3 字符串运算符 19 2.4 其他运算符 20 2.4.1 单参数运算符 20 2.4.2 递增和递减 21 2.4.3 尖括号运算符 21 2.4.4 其他赋值运算符 22 2.4.5 关于字符串和数字的一些说明 22 2.5 练习:利息计算程序 23 2.6 课时小结 24 2.7 课外作业 24 2.7.1 专家答疑 24 2.7.2 思考题 24 2.7.3 解答 25 2.7.4 实习 25 第3学时 控制程序流 26 3.1 语句块 26 3.2 if语句 27 3.2.1 其他关系运算符 28 3.2.2 “真”对于Perl意味着什么 29 3.2.3 逻辑运算符 30 3.3 循环 32 3.3.1 用while进行循环 32 3.3.2 使用for循环 33 3.4 其他流控制工具 33 3.4.1 奇特的执行顺序 33 3.4.2 明细控制 34 3.4.3 标号 35 3.4.4 退出Perl 35 3.5 练习:查找质数 35 3.6 课时小结 37 3.7 课外作业 37 3.7.1 专家答疑 37 3.7.2 思考题 37 3.7.3 解答 38 3.7.4 实习 38 第4学时 基本构件的堆栈:列表与数组 39 4.1 将数据放入列表和数组 39 4.2 从数组中取出元素 41 4.2.1 寻找结尾 42 4.2.2 关于上下文的详细说明 43 4.2.3 回顾以前的几个功能 44 4.3 对数组进行操作 45 4.3.1 遍历数组 46 4.3.2 在数组与标量之间进行转换 46 4.3.3 给数组重新排序 48 4.4 练习:做一个小游戏 49 4.5 课时小结 51 4.6 课外作业 51 4.6.1 专家答疑 51 4.6.2 思考题 51 4.6.3 解答 52 4.6.4 实习 52 第5学时 进行文件操作 53 5.1 打开文件 53 5.1.1 路径名 54 5.1.2 出色的防错措施 55 5.1.3 以适当的方式运行die函数 56 5.2 读取文件 56 5.3 写入文件 58 5.4 自由文件、测试文件和二进制数据 60 5.4.1 自由文件句柄 60 5.4.2 二进制文件 60 5.4.3 文件测试运算符 61 5.5 课时小结 62 5.6 课外作业 62 5.6.1 专家答疑 62 5.6.2 思考题 63 5.6.3 解答 63 5.6.4 实习 63 第6学时 模式匹配 64 6.1 简单的模式 64 6.2 元字符 66 6.2.1 一个简单的元字符 66 6.2.2 非输出字符 66 6.2.3 通配符 66 6.2.4 字符类 68 6.2.5 分组和选择 69 6.2.6 位置通配符 69 6.3 替换 70 6.4 练习:清除输入数据 70 6.5 关于模式匹配的其他问题 71 6.5.1 对其他变量进行操作 71 6.5.2 修饰符与多次匹配

PERL编程24学时教程

第一部分 Perl 基础 第1学时Perl 入门 第2学时Perl 的基本构件:数字和字符串 第3学时控制程序流 第4学时基本构件的堆栈:列表与数组 第5学时进行文件操作 第6学时模式匹配 第7学时哈希结构 第8学时函数

Perl教程24学时

Perl从入门到精通,全流程基础介绍。24学时,适合初学者。

python高级 03 CGI编程

3.Python CGI编程 3.1 CGI简述 CGI (Common Gateway Interface),通用网关接口,它是一段程序(可以是python脚本、PERL脚本。SHELL脚本,C或C++程序等),运行在服务器上如:HTTP服务器。目前由NCSA维护。文件扩展名为 .cgi ,python可以用 .py 1 . 网页浏览 浏览器访问URL并链接到HTTP web服务器 Web服务...

qq_42421212的博客 558

在windows下运行CGI程序

今天下载了个好东西,“PERL编程24学时教程”,我直接看 将perl用于cgi那部分。我发现,学一门东西,当时学不下去时,很困惑时,就放在那里,过段时间有灵感了,再翻过来看,其实很简单。 怎么在windows下运行cgi程序呢?? 第一步:安装好perl5 第二步:安装好

aldenphy的专栏 7867

怎样利用Perl CGI和LB5K的缺陷攻占远程服务器

1.================================by analysist http://www.china4lert.org LB5K可以算是国内最流行的论坛程序了,我以前只发现过一个提升权限的漏洞,比较高的版本基本没有什么安全问题,但是由于前些日子发现了Perl CGI在IIS下的若干问题,也想到了一些事情,今天花了点时间重新看了一下LB5K,结果发现我们完全可以利用这两个漏

zou5655的专栏 2631

linux cgi 更改网络配置,惨绝人寰的蓝点linux2.0配置perl cgi-CGI教程,CGI文档

惨绝人寰的蓝点linux2.0配置perl cgi倒霉的飞鸟最近掏腰包买了份蓝点linux开始学习linux下面用perlcgi…但是apache + mod_perl上面遭受了无比巨大的挫折(几个linux命令行命令倒是练得烂熟)。内心无比沮丧。今晚准备豁出去,再次格式化安装linux..安装蓝点linux2.0, 所有软件全部安装。启动服务去掉httpd (我从apache.org下载源代码...

weixin_29944865的博客 236
上一篇: Perl学习文档——Perl高级功能(Perl模块)《Perl编程24学时教程》
下一篇: 服务器端包含程序(SSI, Server Side Include)——shtml教程(2)
happmaoo
博客等级 码龄18年 89粉丝 83原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值