精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>● CGI>>初学乍用>>Perl程序设计中常用的函数(二)

主题:Perl程序设计中常用的函数(二)
发信人: chenwen()
整理人: workingnow(2002-10-30 13:56:47), 站内信件

 指令:sort
 语法:sort(@array)
 说明:将数组中的元素由小到大排序,如果要由大到小排序的话,
要加上reverse这个函数。
 示例:
   @abc=("d","b","c","a");
   @abc=sort(@abc);      #这时@abc=("a","b","c","d");
   @abc=(reverse sort@abc);  #这时@abc=("d","c","b","a");
   这个语法也可以写成@abc=(reverse sort(@abc));
   @number=(5,2,10);
   @number=sort(@number);
 上面示例用sort函数来排序数值的时,会出差错,因此要用下面到
下面这一句。
   @number=(sort{$a<=>$b}@number); #这时@number=(2,5,10);

 指令:length
 语法:length($string)
 说明:求出字符串$string的字节(bytes)值。
 示例:$string="Perl5";
   $size=length($string);   #这时$size=5;

 指令:substr
 语法:substr($string,offset,length)
       offset代表起始字符的位置,length代表引用的字符串长度,
如果省略length则代表从起始值到字符串的最后一个字符长度。而
offset如果是负值的话,就会从字符串右边开始指定字符。
 示例:$s=substr("perl5",2,2);   #这时$s="rl";
       $s=substr("perl5",2);     #这时$s="rl5";
       $s=substr("perl5",-2,2);   #这时$s="er";

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

 指令: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之间

 指令:localtime
 语法:localtime(time)
 说明:可返回九个有关时间的元素,在写CGI应用程序的时候常会用到
系统的时间,所以在此会详细介绍这个函数的用法。
 示例:
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time);

 其中:
       $sec代表秒数[0,59]            $min代表分数[0,59]
       $hour代表小时数[0,23]         $mday代表是在这个月的第几天[1,31]

       $mon代表月数[0,11],要将$mon加1之后,才能符合实际情况。
       $year从1990年算起的年数
       $wday从星期六算起,代表是在这周中的第几天[0-6]
       $yday从一月一日算起,代表是在这年中的第几天[0,365]
       $isdst只是一个flag
  知道这些变量之后,就可以在CGI应用程序中拿来应用了。此外,也
可以用下面这一行指令在UNIX系统下取得系统的时间。为了避免错误发
生,最好用绝对路径的方法来取得系统时间,如果绝对路径不清楚的话可
以用"which data"这个指令来得知。最后要提字符的话,就不能正确执行
系统的程序了。
       $data='/usr/bin/data';
       而在perl5版本中,也可以用下面这一行指令来取得系统时间。
       $data=localtime(time);

--
I'm the KING of the world !
Homepage: http://chenwen.yeah.net

※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.202.96.252]

[关闭][返回]