perl 入门Word文档格式.docx
- 文档编号:4408425
- 上传时间:2023-05-03
- 格式:DOCX
- 页数:28
- 大小:27.08KB
perl 入门Word文档格式.docx
《perl 入门Word文档格式.docx》由会员分享,可在线阅读,更多相关《perl 入门Word文档格式.docx(28页珍藏版)》请在冰点文库上搜索。
每次在Unix中输入新的一行,将得到一个命令行提示。
通常以机器名然后跟着一个%或#
字符的形式出现。
这是输入基本命令来创建、拷贝、移动和删除文件的地方,还可以做
其它事情。
试试这些联系:
打开你最喜欢的Mac或PC字处理器。
对于HTML来说,用一种简单的能把代码存成纯文本
的编辑器。
敲入这行:
This
isadummysentenc.
把文件保存为practice.txt。
用FTP程序把这个文件上载到服务器上。
注意:
应该以ASCII的方式上载你的CGI文件,
不能用binary方式。
用TELNET程序访问你的Web服务器。
用你的用户名和口令LOGIN。
敲入ls然后按回车键(注意:
使用小写,Unix区分大小写),你的Web服务器中的内容
将列在屏幕上,应该能够看到你的practice.txt。
敲入pwd然后按回车。
pwd代表“打印工作目录(Print
WorkingDirectory)”。
从服务器的ROOT目录到你的当前目录的路径将显示出来。
例
如,我的主目录是/home/usr/robyoung/htdocs。
敲入mkdirmyfolder然后按回车-创建一个叫‘myfolder‘的目录。
敲入mvpractice.txtmyfolder/practice.txt然后按回车-把practice.txt移动到
myfolder中。
敲入cdmyfolder然后按回车-进入myfolder目录。
敲入pwd然后按回车-路径名以/myfolder结束。
敲入ls然后按回车-myfolder中的内容将显示出来-
只有practice.txt。
敲入cppractice.txtcopy2.txt然后按回车-
做一个拷贝。
敲入ls然后按回车-将列出两个文件。
敲入rmcopy2.txt然后按回车-删除这个文件。
敲入ls然后按回车-只剩下practice.txt。
1.2chmod命令
创建CGI程序时,需要改变其访问权限以便能从网页中执行之。
我们用chmod命令实现这
个目的。
chmod命令有两个参数
-谁拥有权限和他们将拥有哪些权限。
1.谁拥有权限?
有三类不同的权限:
User、Group和Others-用字母u、g和o表示。
字母‘a‘表示所有类
别。
2.可以拥有什么权限?
有3种类型的权限:
Read、Write和eXecute,用字母r、w和x表示。
权限通过等号赋予(=r、或=rw、或=rx),或者通过加号(+r或+rwx)或减号(-w或
-rwx)。
3.如何敲入命令?
对于大多数CGI程序,我想让所有人都有读和执行的权限,但没有写的权限,因此没有
人可以删除或编辑我的程序。
下面是最常见的命令:
chmoda+rxfilename.cgi
表示让所有人有读和执行的权限。
当我创建一个文件时,我拥有完全的读、写和执行权
限,但其他人没有任何权限。
这个命令让所有人可以运行我的程序。
在myfolder文件夹中试试这个例子:
入ls-l然后按回车。
显示出关于practice.txt的很多信息,包括大小、拥有者和最后
保存的日期。
观察访问权限,可能是这样:
rwx------或rw-r--r--或rw-r-----,前3个指明user权限
(读、写、执行)。
然后的三个是group权限(无),最后的三个为other权限(无)。
敲入chmoda+rxpractice.txt然后按回车-
为所有类别增加读和执行权限。
敲入ls-l然后按回车-这时显示的权限为rwxr-xr-x,指明拥有者仍然拥有所有权限,
group和others有读和执行权限,但没有写的权限。
敲入chmodgo-xpractice.txt然后按回车。
敲入ls-l然后回车-现在的权限为rwxr--r--,指明拥有者仍有完全的权限,group和
others只有读的权限。
删除myfolder文件夹
敲入rmpractice.txt然后按回车。
敲入cd..
敲入rmdirmyfolder
1.3定位Perl和sendmail
定位Perl程序
每个Perl程序指明Perl在系统中的位置。
于是外部的网页可以知道执行什么程序和去哪
找它。
从命令行提示符敲入whichperl然后按回车。
系统返回类似这样的结果:
/usr/bin/perl
或
/usr/local/bin/perl
记下这个结果,这是你的系统中Perl的位置,以后会用到。
如果系统没有返回结果,再试试:
敲入whereisperl然后回车。
如果还没有得到Perl的路径,需要给你的系统管理员发一封EMAIL。
定位sendmail程序
敲入whereissendmail,然后按回车。
会返回几个结果,其中一个以sendmail结尾。
例如,我在我的系统上得到的结果是:
sendmail:
/etc/sendmail.cf/etc/sendmail/etc/sendmail.st
/usr/lib/sendmail.no_mx/usr/lib/sendmail.mx/usr/lib/sendmail
/usr/lib/sendmail.hf
/usr/man/man8/send
以/usr/开始sendmail结束的是:
/usr/lib/sendmail,这是我们要记下的。
如果你在定位Perl程序或sendmail程序时遇到问题,应该email给你的系统管理员,询
问正确的路径。
2.1使用Emacs
当我已经有一个很好的PC上的图形界面的面向鼠标的编辑器时,为什么我还想要一个基
于文本的编辑器呢?
答案是Emacs运行在你的Unix平台上,所以可以方便地做小的修改。
基本上当你维护你在Unix平台上的工作时,你有两个选择:
1.在PC上使用图形界面的文本编辑器,然后FTP你的文件到Unix服务器上。
当你做修改
时,保存你的修改,然后再FTP上去。
这种方式的好处是你可以在一个舒适的、面向鼠
标的编辑器中做所有的工作。
缺点是每次上传文件都要花费时间。
2.用一种Unix编辑器,如Emacs,直接保存你的修改到服务器上。
它的界面不太漂亮,
而且不能用鼠标,但一旦你用惯了,就能做任何事。
我宁愿在做小的修改时使用Emacs,
而不愿每次上传文件。
开始Emacs教程:
敲入emacs然后按回车。
屏幕将显示emacs编辑器环境。
如果你的服务器显示“Emacs
notfound”,那么你应该给你的系统管理员发一封Email,问问是否有可用的文本编辑
器并且是否有在线教程。
敲入[ctrl]-h然后按t。
这时将调出教程。
可能要花几个小时学习Emacs教程。
你对
Emacs越了解,编辑Perl越容易。
要点:
保存文件-敲入[ctrl]-x然后按[ctrl]-s。
退出-敲入[ctrl]-x然后按[ctrl]-c。
打开文件-emacsfilename。
2.2Perl简介
准备模板
在你的PC或Mac上建立一个文件夹-perltour。
点击这里下载模板文件-
template.txt。
把它保存到perltour文件夹中。
在你最喜欢的文本编辑器中打开这个文件。
把第一行替换为你已经定位的Perl路径。
对于Windows
NT用户:
删除这行。
你的机器使用.pl文件扩展名开定位Perl,所以要保证你的文件的
扩展名为.pl而不是.cgi。
找到文档的倒数第八行-open(MAIL,
"
|/usr/lib/sendmail-t"
)||die
把/usr/lib/sendmail替换为你已经定位的sendmail路径。
找到下一行-"
Content-type:
text/text\n\nCan‘topen
/usr/lib/sendmail!
;
把/usr/lib/sendmail替换为sendmail路径。
保存文件。
从现在开始你每次创建一个新的CGI时都可以拷贝这个template.txt文件。
建立一个测试文件
我们现在建立一个测试用的CGI程序然后上传到服务器上。
有些服务器允许你的CGI程序可以在任何web目录中
-只要文件名以"
.cgi"
结束。
有的服务器要求只能把它们放在
cgi-bin"
目录中。
可以跟你的系统管理员确认是哪种情况。
拷贝template.txt到test1.cgi中(在NT上为test1.pl)。
打开test1.cgi然后找到#************BEGINBODY*********
在这行后面加入一行:
print"
<
h1>
Hello
World<
/h1>
如果不需要把脚本放在cgi-bin目录中......
用Telnet程序登录到你的Unix服务器上。
在Unix命令提示符下,敲入mkdirperltour然后按回车。
敲入chmoda+rxperltour然后按回车。
把test1.cgi文件FTP到perltour文件夹中。
应该以ASCII方式上传你的CGI文件,
敲入chmoda+rxtest1.cgi然后按回车。
敲入ls-l然后按回车。
这时你可以看到test1.cgi的权限:
rwxr-xr-x,表明任何人都
可以读和执行这个文件。
运行浏览器,输入你的主目录URL,把/perltour/test1.cgi加在URL后面。
如果需要把脚本放在cgi-bin文件夹中......
用Telnet登录到你的Unix服务器上。
向系统管理员询问cgi-bin的路径。
在Unix命令提示符下,敲入cdcgi-bin路径,然后按回车。
把test1.cgi文件FTP到服务器的cgi-bin文件夹中。
应该以ASCII方式上传你的
CGI文件,不能用binary方式。
运行浏览器,输入你的服务器的URL,把/cgi-bin/test1.cgi加在URL后面。
例如,
HelloWorld将以大字母出现,表明CGI正常工作。
2.3HTMLFORM
这页很简单-
建立一个用户可以输入信息的基本的form。
form顶部的<
FORM>
标记符有两个参数:
ACTION="
path/to/myscript.cgi"
和METHOD="
post"
。
把这个文件保存在perltour文件夹中,用文件名"
test2.cgi"
把下面代码拷贝到文件testform.htm中,然后把它FTP到perltour文件夹中。
HTML>
HEAD>
TITLE>
Myfirstform<
/TITLE>
/HEAD>
BODY>
FORMACTION="
METHOD="
POST"
>
FirstName<
INPUTNAME="
first"
TYPE=TEXT
SIZE=25>
BR>
LastName<
last"
TYPE=TEXTSIZE=25>
E-mail<
email"
TYPE=TEXTSIZE=30>
INPUTTYPE=SUBMITVALUE="
Testit"
/FORM>
/BODY>
/HTML>
当用户点击form底部的submit按钮时,服务器将执行程序"
并把
用户输入的信息传递给程序。
Method可以是POST或GET。
如果你的服务器使用cgi-bin文件夹,你的HTML文件中的form中的script名前应
加上/cgi-bin/。
例如,
/cgi-bin/test2.cgi"
3.1回应脚本
这段脚本将显示输入到HTMLFORM中的文本。
它是一个信息如何传递给你的程序的简单
的例子。
既然你现在已经有了一个有着正确的Perl和Senmail的路径的template.txt文
件,下面要做的只是编辑CGI的BODY部分。
拷贝下面脚本的BODY部分到template.txt,然后保存到一个新文件
中。
FTPtest2.cgi到perltour文件夹(或cgi-bin)中。
然后在Unix提示符下,进入perltour(或cgi-bin)文件夹,敲入chmod
a+rxtest2.cgi设置权限。
现在可以在你的浏览器中打开服务器上的testform.htm,测试这个form。
当你填充这个
form并按"
Test
It"
时,CGI告诉你你输入了什么。
#!
/usr/local/bin/perl
#
&
readparse;
text/html\n\n"
#*****************BEGINBODY*************
Thankyouforfillingoutthe
form<
$firstname=$value[0];
$lastname=$value[1];
$email=$value[2];
Yourfirstnameis$firstname<
Yourlastnameis$lastname<
Youre-mailis$email<
#***************ENDBODY******************
3.2脚本解释
现在让我们看看这段代码。
#*****************BEGINBODY*************
Unix上的每个CGI的第一行都是运行它的程序的路径。
记住,你的可能与上面写的不同。
服务器将按这个路径定位Perl,然后用Perl解释器执行程序。
这是唯一的有#并且对程
序有意义的一行。
程序其余部分的#只是注释,程序将忽略其后的内容。
第三行是一个命令,&
这是一个子过程,输入所有进入HTML
FORM中的文本。
第四行对所有CGI都是必须的,它告诉服务器我们要打印的任何信息都
应该返回HTML文档。
这些行永远不会改变,因此下面我们集中在BODY部分的内容上。
3.3BODY部分
#***************ENDBODY******************
对于Perl,我们需要知道:
每行以分号结束。
变量以$开始。
第一行很直接-print将打印随后的内容到屏幕上。
要打印的内容必须在引号内,其中
可以包含HTML标记符。
readparse子过程自动把HTMLFORM中的内容放入一个称为value的数组中。
这样,第一
个文本框中的内容是$value[0],第二个文本框中的内容是$value[1],等等
-数组下标以0开始。
第二行我们执行命令:
这个语句创建一个称为$firstname的新变量,把$value[0]的内容赋给它。
这意味着在
HTML
FORM中第一个文本框中输入的信息将包含在变量$firstname中。
第三行和第四行与此类似:
$email=$value[2];
很明显,这两行分别把第二个和第三个文本框中的内容赋给变量$lastname和$email。
程序的最后三行把文本和变量打印到屏幕上。
Yourfirstnameis
$firstname<
注意变量被包含在双引号中。
在其它语言,如JavaScript中,我们必须显式的连接文本
和变量。
在Perl中,当它看到$时,就会使用变量的内容。
不错,是吧?
但是要注意,
只有双引号才能这样,单引号只是从字面上引用其中的内容。
4.1email子过程
$to=$email;
$from="
clinton\@whouse.gov"
$sub="
subjectofmyfirste-mail"
$body="
Theformwasfilledoutby$firstname$lastname
Thankyougoesonanotherline."
email($to,$from,$sub,$body);
在上面的例子中,我在程序的BODY后面增加了7行。
你需要拷贝这些行到test2.cgi的
BODY中。
有两种方式:
在PC上的文本编辑器中进行拷贝和粘贴,然后用FTP重新上传,这时不必重新运行chmod。
可以在Unix提示符下运行Emacs或Pico,对文件进行修改,然后保存和退出。
这时你可以再试试form。
要在testform.htm页面中输入你自己的邮件地址。
当你提交这
个form时,显示结果与以前一样。
但如果你在几秒种后查看你的e-mail,你会看到一封
来自President
Clinton的消息。
让我们看看这些行:
-拷贝变量$email中的内容到变量$to中。
-设置变量$form为clinton@whouse.gov。
反斜线(\)称为escape
character。
@符号在Perl中有特殊意义,表示一个数组,这时,如果我们不想引用数组,
而只用@符号本身,需要在前面加一个"
\"
例如,如果我敲入下面这行:
$amount="
Heowesme$20.00"
将得到一个错误,因为Perl将试图访问一个称为$20.00的变量。
我们可以这样写:
Heowesme\$20.00"
这行很直接。
Theformwasfilledoutby$firstname
$lastnameThankyougoesonanotherline."
这只是一个命令-Perl命令总以分号结束。
返回的字符是赋给$body的字符串中的另一
个字符。
这很方便,因为可以敲入引号,然后象在字处理器中一样敲入多行文本,然后
用引号结束。
最后,象其它语句一样敲入引号。
也可以象这样而得到相同的结果:
$lastname\nThankyougoesonanotherline."
\n为换行符-当双引号中包含\n时,把它翻
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- perl 入门
![提示](https://static.bingdoc.com/images/bang_tan.gif)