首页
登录 | 注册

perl 中一些常用的函数


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函数中特殊打印符号字符:
符号 内定含意
n 换行New Line
r 光标换行Return
t Tab键
f 换页Form feed
b 退回一键Backspace
v 垂直Tab键
a 响铃Bell
07 十进制ASCII码
xff 十六进制码
c[ 控制字符
范例:
   print STDOUT"i love perln";
   将“i love perl"再加上换行显示于屏幕上。
--------------------------------------------------------------------------------
语法二:Print LIST
说明:如果省略Filehandle的话,就会把Filehandle内定为STDOUT。也就是会将LIST的数据内容显示于屏幕上。
范例:
   $Str1ng="perl";
   print"i love $stringn";
   会将“i love perl”再加上换行显示在屏幕上,而如果要让双引号内的变量失效的话,可以在变量前面加上这个符号。例如如果是print“i love $string”;的话,就会显示出“i love $string”这个字符串。
--------------------------------------------------------------------------------
语法三:print
说明:同时省略Filehandle和LIST的话,就会以STDOUT为Filehandle,并会输出$_这个内定输出变量的数据内容。如果$_变量是一个空字符串的话,就会显示出一个空字符串。
范例:
   $_="i love perln";
   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");
   在传送CGI应用程序数据的时候会先将数据编码,其中会将FORM中每个数据字段的数据内容用&这个符号隔开,所以在解码的时候就要以&这个符号为分割的字符,将每个数据字段分割出。例如:
$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
语法:keys(%ARRAY)
说明:取出关联数组%ARRAY中全部的key。
范例:
%NAMES=(1,"one",2,"two");
@list=keys(%NAMES), #此时@list=(l,2);

--------------------------------------------------------------------------------
指令:values
语法:values(%ARRAY)
说明:取出关联数组%ARRAY中全部的value。
范例:
%NAMES=(1,"one",2,"two");
@list=values(%NAMES); #此时@list=("one","two");

--------------------------------------------------------------------------------
指令:reverse
语法:reverse(@array)
说明:将数组@array中的元素由后到前重新排列。
范例:
@list=("A","B","C","D");
@1ist=reverse(@list); #此时@list=("D","C","B","A")

--------------------------------------------------------------------------------
指令:sort
语法: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
语法:length($string)
说明:求出一字符串$string的bytes值。
范例:
$string="Perl";
@size=length($string); #此时$size=4;

--------------------------------------------------------------------------------
指令:substr
语法:substr($string,offset,length)
   其中offset代表起始字符的位置,length代表引用的字符串长度,如省略length的话代表从起始值到字符串的最后一个字符长度。而offset如果是负值的话,就会从字符串右边开始取出指定的字符串。
说明:在一字符串$string中取出想要的字符串。
范例:
$x=substr("testing",2,2); #此时$x="st";
$x=substr("testing",2); #此时$x="sting";
$x=substr("testing",-2,2); #此时$x="in";

--------------------------------------------------------------------------------
指令:index
语法:index($string,$substring,position)
   其中$substring是指要寻找的字符,position代表要从哪一个位置开始找起,如省略position的话就从头开始找起。
说明:返回所要找寻的字符在一字符串$string中的位置,如果在字符串中找不到字符的话,则会返回-l这个值。
范例:
$x=index("testing","t"); #此时$x=0;
$x=index("testing","t",2); #此时$x=3;
$x=index("testing","perl"); #此时$x=-l;

--------------------------------------------------------------------------------
指令:push
语法:push(@array,$string)
说明:在数组@array的最后一个元素后附加新的元素string到数组@array中。
范例:
@array=("one","two");
push(@array,"three"); #此时@array=〈"one","two","three");

--------------------------------------------------------------------------------
指令:pop
语法:pop(@array)
说明:将数组@array的最后一个元素删除,并将删除的元素返回。
范例:
@array=〈"one"'"two");
$rm=pop〈@array); #此时@array=("one");而$rm="two";

--------------------------------------------------------------------------------
指令:unshift
语法:unshift(@array,$string)
说明:在数组@array的第一个元素前附加新的元素$string到数组@array中。
范例:
@array=("one","two");
unshift(@array'"three"); #此时@array=("three","one","two");

--------------------------------------------------------------------------------
指令:shift
语法:shift(@array)
说明:将数组@array的第一个元素删除,并将删除的元素返回。
范例:
@array=("one","two");
$rm=shift(@array); #此时@array=("two"),而$rm="one";

--------------------------------------------------------------------------------
指令:join
语法:join($string,@array)
说明:在一数组@array的元素之间加上一指定的字符$string,并将结果返回。
范例:
@array=("one","two","three");
$total=join(":",@array); #此时$total="one:two:three";

--------------------------------------------------------------------------------
指令:grep
语法:grep(/pattern/,@array)
说明:将符合文字处理模式(regular expression)的数组元素找出来。
范例:
@array=("one","on","in");
$count=grep(/on/,@array); #此时$count=2;(代表有二个元素符合)
@result=grep(/on/,@array); #此时@result=("one","on");

--------------------------------------------------------------------------------
指令:hex
语法:hex($string)
说明:将十六进制的数值转成十进制。
范例:
$decimal=hex("ff"); #此时$decimal=255;

--------------------------------------------------------------------------------
指令:rand
语法:rand($interger)
说明:常和函数srand搭配来取得一随机数,如果没有事先宣告stand函数的话,则取出的数值是一个固定值。这个语法会返回一个介于0和$interger之间的数值,如果$interger省略的话,则会返回一个介于0和1的数值。
范例:
srand; #要先宣告srand函数,才能产生随机数的效果
$int=rand(10); #$int的值会大于0而且小于10
如果希望产生的乱数是整数的话,就要再 加上int这个函数
$int=int(rand(10)); #$int的值是一个整数,且值在0和9之间

--------------------------------------------------------------------------------



相关文章

  •          lua语言作为苹果iOS系统支持的一种编程语言,同时常见于游戏脚本(比如冰封王座等),也常用与嵌入式系统(OpenWRT堪称经典),但是Lua语言自身却缺少一些实用的,或者说是常用的函数,这里根据经验编写和总结了一些实用函 ...
  • (一)Linux网络编程--网络知识介绍 Linux网络编程--网络知识介绍 客户端和服务端          网络程序和普通的程序有一个最大的区别是网络程序是由两个部分组成的--客户端和服务器端.  客户端         在网络程序中, ...
  • 实验环境:CentOS 6.7 1. 安装Ruby CentOS 6.7中默认安装的是Ruby 1.8,安装最新版2.2.3. root [ ~ ]# wget https://cache.ruby-lang.org/pub/ruby/2. ...
  • 笔记之一       Ruby之所以设计模块的概念,在于弥补传统的C之类语言的模块概念的缺失.在软件设计中,模块化体现很多很有用,它直接关系到软件设计的效率和灵活性.C中没有明显的模块的概念,就要由程序员自己通过软件的手段来强化模块概念,通 ...
  •  <写给Java开发者的10分钟Perl指南>  原文见:http://www.programcreek.com/2012/09/10-minutes-perl-tutorial-for-java-developer/  本文并 ...
  • Node.js 回调函数 Node.js 异步编程的直接体现就是回调. 异步编程依托于回调来实现,但不能说使用了回调后程序就异步化了. 回调函数在完成任务后就会被调用,Node 使用了大量的回调函数,Node 所有 API 都支持回调函数. ...

2020 unjeep.com webmaster#unjeep.com
12 q. 0.014 s.
京ICP备10005923号