perl常用函数-持续更新中

Open

 

Perl 中可以用 Open 或 者 sysopen 函数打开文件进行操作,这两个函数都需要通过文件句柄(即文件指 针)来对文件进行读写定位等操作。

 

$FH 为文件句柄

Open($FH ,"c:/bugzilla/data_developer.png")||die "open failed!";# 前提文件必须已 经存在,否则会返回0 ,出错信息在$! 中。

Open($FH ,">c:/bugzilla/data_developer.png")||die "open failed!";# 如果文件不存 在,创建之;如果存在,内容被清空,长度截至为0.

Open($FH ,">>c:/bugzilla/data_developer.png")||die "open failed!";# 文 件中的内容不会被清空,新的内容会追加到原文后面

Open($FH ,"+<c:/bugzilla/data_developer.png");# 如果文件不存在,则创建;如果文件已经存在,原来的数据不会被 清除;此种方式既可以读文件,又可以写文件。可以通过tell ()函数在文件内部移动,通过seek ()函数进行定位。

 

use

use 功能类似于Cinclude 功能

例如:use  GD::Graph::pie; 

 

my

perl 中可以通过关键字my 来 定义自己的变量

例如:my $i=0;# 定义1 个变量 my @a ; 定义数组

 

print
语法: print Filehandle LIST
说明:这个 Filehandle 可以看作在 I(INPUT)/O(OUTPUT) 之间的一个桥梁 , 可以利 用 FILEHANDLE 来做出数据读入写 出的动作 .STDIN 是代表从哪连输入数据 , 例如从电脑的键盘输入 ;STDOUT 是代表从哪连输出数据 ; 例如从电脑的屏 幕输出 ;STDERR 是代表从哪连输出错误的数据 , 例如从电脑的屏幕输出 . 而在 PERL 语 言中有三个标准 FILEHANDLE 1.STDIN( 标准输入 ) :是代 表 STDIN FILEHANDLE
2.STDOUT(
标准输出 ) :是代 表 STDOUT FILEHANDLE
3.STDERR(
标准错误输出 ) :是代 表 STDERR FILEHANDLE 如果要使用其他 FILEHANDLE 的时候 , 就要用 OPEN 这个函数来打开一个 FILEHANDLE, 我们可以用 PRINT 这个函数 LIST 的 数据输出给 FILEHANDLE.
在为大家介绍 PRINT 这个函数之前 , 先让我 们来看看 PRINT 函数中特殊打印 字符

符号 其 作用
/n
换行 new line
/r
光标换行 return
/t tab

/f
换页 form feed
/b
退回一格
/v
垂直 tab
/a
响铃 Bell
/e escape

/007
十进制 ASC II
/xff
十六进制码
/c[
控制 字符
示例: print STDOUT " 网上学园 /n"; " 网上学 园 " 加上换行显示在屏幕上 .

语法: print LIST
说明: 如果省略 Filehandle 的话 , 就会把 Filehandle 内定为 STDOUT. 也就是会将 LIST 的数据内容显示在屏幕上 .
示例: $url="www.netease.net/~zmd";
print "
网上学园 $url/n";
在屏幕上将会出现 " 网上学园 www.netease.net/~zmd", 如果想要让双引号内的变量失效 , 可以在变量的前面加上 "/" 符 号 . 例如: print" 网上学园 /$url"; 这样它就显示: " 网上学园 $url"

语法: print
说明: 同省略 Filehandle LIST 的话 , 就会以 STDOUT Filehandle, 并会输出 $_ 这个内定输出变量的数据内容 . 如果 $_ 变量 是一个空 字符 串的话 , 就会显 示出一个空 字符 .
示 例: $_=" 网上学园 /n"; print; 就会将 " 网上学 园 " 加上换行显示在屏幕上


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

指令: printf
语法: printf Filehandle LIST
说明: perl 语 言中也提代 C 语言中 printf 的语法 , 用法和 C 语言中 的用法一模一样 . 如果把 Filehandle 省略的话 , 也一 样会把 STDOUT 当成是内定的 Filehandle. 在为大家介绍 printf 函数之前 , 先让我们来看看 printf 函数中变换符号的 字符 .

符号 其作用
%c 字符
%s 字符

%d
整数
%f
浮整数
%h
十六进制码
%o
八进制码
示例: printf("chomod%d%s/n","711""cgi"); 会将 chmod 711 cgi 加上换行显示于屏幕上。

指令: chop 语法: chop($url)
说明:把最后一个 字符 删除。

示例: $url="www.nease.net/~zmd/";
chop($url);
这时 $url="www.nease.net/~zmd" 而这两行也可以写成
chop($url="www.nease.net/~zmd/");


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

指令:
split
语法: split(/pattern/,$text,limit) 其中 /pattern/ 是文字处理的模式,而 limit 是代表要分割的个数,一般可以省略。

说明:用一个指定的文字处理模式来分割 $text 字符 串。
示例:
$text="Michael,Gevin,Mike"; @name=split(/,/,$text); #
这时 @name=("Michael","Gevin","Mike");
($a,$b,$c)=split(/,/,$text); #
这时
$a="Michael";$b="Gevin";$c="Mike";
@name=split(/,/,$string,2); #
这时
@name=("Michael","Gevin");
在传送 CGI 应用 程序 数据的时候会先将数据编码,其中会将 FORM 中第个数据字段 的数据内容用 & 这个符号隔开,所以在解码的时候就要以 & 这个符号为分割的 字符 ,将每个数据字段分割出。例如:
$text="Mike=A&Michael=B";
@name=split(/&/,$text); #
这时 @name=("Mike=A","Michael=B"); 而数据字段的名称和这个数据字段的值是用 = 这个符号来隔开,如果想取得数据 字段的名称和所对应的值的话,就用要 = 这个符号来分割数据字段,例如: $name=""Mike=Michael""

($name1,$name2)=split(/=/,$list); #
这时
$name1="Mike";$name2="Michael";


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

指令:
keys
语法:
keys(%array)
说明:取出关联数组 %ARRAY 中全部的 key

示例: %NAME=(1,"mike",2,"michael"); @readkey=keys(%NAMES); # 这时 @readkey=(1,2);


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

指令:
values
语法:
values(%array)
说明:取出关联数组 %ARRAY 中全部的 value

示例: %NAMES=(1,"mike",2,"michael"); @readval=values(%NAMES); # 这 时 @readval=("mike","michael");


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

指令:
reverse
语法:
reverse(@array)
说明:将数组 @array 中的元素由后到前重新排列。

示例: @back=("A","B","C","D","E"); @back=reverse(@back); # 这时 @back=("E","D","C","B","A");


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

指令:
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);


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

指令:
die
语法:
die LIST
说明:会把 LIST 字符 串显示出来,并退出 程序 。常常和 $! 这个代表错误信息变量一起使用。

示例: open(FILE,"$filename")||die " 不能打开 文件 $!/n; 如果打开 文件 失败的话,就会显示出错误的信息,之后再退出 程序

 

 

数组的最后一个 index:$#

例如: @component ,则此数据的长度为 $#+1, 数组的最后一个数据为 @component[$#]

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值