perl-cgi 简介 (二)
时间:2007-06-15 来源:easyworld
6.3.2 Perl在CGI程序设计中常用的函数
指令:#
说明:注解符号Remark宣告
范例:#本程序是一个示范注解说明
指令:print
语法一:print Filehandle LIST
说明:这个Filehandle可把它看作在I(Input)/O(Output)间的一个桥梁,可以利用Filehandle来做出数据读入写出的动作。stdin是代表从哪边输入数据,例如从电脑的键盘输入,stdout是代表从哪边输出数据;例如从电脑的屏幕输出;stderr是代表从哪边输出错误的数据,例如从电脑的屏幕输出。而在Perl语言中有三个标准的Filehandle:
(一)STDIN(标准输入):是代表stdin的Filehandle
(二)STDOUT(标准输出):是代表stdout的Filehandle
(三)STDERR(标准错误输出):是代表stderr的Filehandle
如果要使用其他Filehandle的时候,就要用open这个函数来打开一个Filehandle,我们可以用print这个函数把LIST的数据输出给Filehandle。在为大家介绍print这个 函数之前,先让我们来看看print函数中特殊打印符号字符:
范例:
print STDOUT"i love perl\n";
将“i love perl"再加上换行显示于屏幕上。 语法二:Print LIST
说明:如果省略Filehandle的话,就会把Filehandle内定为STDOUT。也就是会将LIST的数据内容显示于屏幕上。
范例:
$Str1ng="perl";
print"i love $string\n";
会将“i love perl”再加上换行显示在屏幕上,而如果要让双引号内的变量失效的话,可以在变量前面加上\这个符号。例如如果是print“i love \$string”;的话,就会显示出“i love $string”这个字符串。 语法三:print
说明:同时省略Filehandle和LIST的话,就会以STDOUT为Filehandle,并会输出$_这 个内定输出变量的数据内容。如果$_变量是一个空字符串的话,就会显示出一个空字符串。
范例:
$_="i love perl\n";
print;
就会将"i love perl"再加上换行显示在屏幕上 指令:printf
语法一:printf Filehandle LIST
说明:在perl语言中也提供C语言中printf的语法,用法和C语言中的用法一模一样。如果把Filehandle省略的话,也一样会把STD0UT 当成是内定的Filehandle。在为大家介绍printf函数之前,先让我们来看看printf函数中变换符号的字符:
范例:
printf〈"chmod%d%s\n","7l1","cgi");
会将“chmod 7ll cgi”再加上换行显示于屏幕上。 指令:chop
语法:chop($string)
说明:把最后一个字符删除掉,常常用这个函数把换行的字符(\n)删除掉。
范例:
$string="hello!\n";
chop($string); #此时$string="hello!";
而这两行也可以写成chop($string="hello!\n"); 指令:split
语法:split(/pattern/,$string,limit)
其中/pattern是文字处理的模式,在下一小节中会有详细的语法介绍。而limit是代表要分割的个数,可以省略。
说明:用一个指定的文字处理模式来分割$string字符串。
范例:
在传送CGI应用程序数据的时候会先将数据编码,其中会将FORM中每个数据字段的数据内容用&这个符号隔开,所以在解码的时候就要以&这个符号为分割的字符,将每个数据字段分割出。例如:
而数据字段的名称和这个数据字段的值是用=这个符号来隔开,如果想取得数据字段的名称和所对应的值的话,就用要=这个符号来分割数据字段,例如:
指令:keys
语法:keys(%ARRAY)
说明:取出关联数组%ARRAY中全部的key。
范例:
指令:values
语法:values(%ARRAY)
说明:取出关联数组%ARRAY中全部的value。
范例:
指令:reverse
语法:reverse(@array)
说明:将数组@array中的元素由后到前重新排列。
范例:
指令:sort
语法:sort(@array)
说明:将数组@array中的元素由小到大排序,如果要由大到小排序的话,就要再加上reverse这个函数。
范例:
指令:length
语法:length($string)
说明:求出一字符串$string的bytes值。
范例:
指令:#
说明:注解符号Remark宣告
范例:#本程序是一个示范注解说明
指令:print
语法一:print Filehandle LIST
说明:这个Filehandle可把它看作在I(Input)/O(Output)间的一个桥梁,可以利用Filehandle来做出数据读入写出的动作。stdin是代表从哪边输入数据,例如从电脑的键盘输入,stdout是代表从哪边输出数据;例如从电脑的屏幕输出;stderr是代表从哪边输出错误的数据,例如从电脑的屏幕输出。而在Perl语言中有三个标准的Filehandle:
(一)STDIN(标准输入):是代表stdin的Filehandle
(二)STDOUT(标准输出):是代表stdout的Filehandle
(三)STDERR(标准错误输出):是代表stderr的Filehandle
如果要使用其他Filehandle的时候,就要用open这个函数来打开一个Filehandle,我们可以用print这个函数把LIST的数据输出给Filehandle。在为大家介绍print这个 函数之前,先让我们来看看print函数中特殊打印符号字符:
符号 | 内定含意 |
---|---|
\n | 换行New Line |
\r | 光标换行Return |
\t | Tab键 |
\f | 换页Form feed |
\b | 退回一键Backspace |
\v | 垂直Tab键 |
\a | 响铃Bell |
\007 | 十进制ASCII码 |
\xff | 十六进制码 |
\c[ | 控制字符 |
print STDOUT"i love perl\n";
将“i love perl"再加上换行显示于屏幕上。 语法二:Print LIST
说明:如果省略Filehandle的话,就会把Filehandle内定为STDOUT。也就是会将LIST的数据内容显示于屏幕上。
范例:
$Str1ng="perl";
print"i love $string\n";
会将“i love perl”再加上换行显示在屏幕上,而如果要让双引号内的变量失效的话,可以在变量前面加上\这个符号。例如如果是print“i love \$string”;的话,就会显示出“i love $string”这个字符串。 语法三:print
说明:同时省略Filehandle和LIST的话,就会以STDOUT为Filehandle,并会输出$_这 个内定输出变量的数据内容。如果$_变量是一个空字符串的话,就会显示出一个空字符串。
范例:
$_="i love perl\n";
print;
就会将"i love perl"再加上换行显示在屏幕上 指令:printf
语法一:printf Filehandle LIST
说明:在perl语言中也提供C语言中printf的语法,用法和C语言中的用法一模一样。如果把Filehandle省略的话,也一样会把STD0UT 当成是内定的Filehandle。在为大家介绍printf函数之前,先让我们来看看printf函数中变换符号的字符:
符号 | 内定含意 |
---|---|
%c | 字符 |
%s | 字符串 |
%d | 整数 |
%f | 浮整数 |
%h | 十六进制码 |
%o | 八进制码 |
printf〈"chmod%d%s\n","7l1","cgi");
会将“chmod 7ll cgi”再加上换行显示于屏幕上。 指令:chop
语法:chop($string)
说明:把最后一个字符删除掉,常常用这个函数把换行的字符(\n)删除掉。
范例:
$string="hello!\n";
chop($string); #此时$string="hello!";
而这两行也可以写成chop($string="hello!\n"); 指令:split
语法:split(/pattern/,$string,limit)
其中/pattern是文字处理的模式,在下一小节中会有详细的语法介绍。而limit是代表要分割的个数,可以省略。
说明:用一个指定的文字处理模式来分割$string字符串。
范例:
$string="i;am;cute"; | |
@list=split(/:/,$string); | #此时@list=〈"i","am","cute"); |
($a,$b,$c)=split(/:/,$string); | #此时$a="i",$b="am",$c="cute"; |
@list=split(/:/,$string,2); | #此时@list=("i","love"); |
$string="who=A&email=B"; | |
@list=split(/&/,$string), | #此时@list=〈"who=A","email=B"); |
$list="who=A"; | |
(0$name,$value)=sp1it(/=/,$list); | #此时$name="who";$value="A"; |
语法:keys(%ARRAY)
说明:取出关联数组%ARRAY中全部的key。
范例:
%NAMES=(1,"one",2,"two"); | |
@list=keys(%NAMES), | #此时@list=(l,2); |
语法:values(%ARRAY)
说明:取出关联数组%ARRAY中全部的value。
范例:
%NAMES=(1,"one",2,"two"); | |
@list=values(%NAMES); | #此时@list=("one","two"); |
语法:reverse(@array)
说明:将数组@array中的元素由后到前重新排列。
范例:
@list=("A","B","C","D"); | |
@1ist=reverse(@list); | #此时@list=("D","C","B","A") |
语法:sort(@array)
说明:将数组@array中的元素由小到大排序,如果要由大到小排序的话,就要再加上reverse这个函数。
范例:
@array=("b","c","a"); | |
@array=sort(@array); | #此时@array=("a",b","c"); |
@array=(reverse sort@array); | #此时@array=("c","b","a"); |
这个语法也可以写成@array=(reverse sort(@array)); | |
@number=(l0,3.20); | |
@number=sort(@number); | #此时@number=(l0,20,3); |
由上个范例可以知道如果要sort函数来排 序数值的时候,就会出差错,因此要用下面这个方法才能正确地使用sort函数来排序。 | |
@number=(sort{$a<=>$b}@number); | #此时@number=(3,10,20); |
语法:length($string)
说明:求出一字符串$string的bytes值。
范例:
$string="Perl"; | |
@size=length($string); | #此时$size=4; |
相关阅读 更多 +