院子铺什么砖好:Perl的简单语法(与C语言语法的异同)3

来源:百度文库 编辑:偶看新闻 时间:2024/05/05 02:48:18

指令:die

语法:die LIST

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

示例

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


指令:open

语法1:open(filehandle,"$filename") 其中 $filename 是一个指定打开的文件名。

说明:这是一个很常用的函数,可用于文件的打开(read only)。

示例

$filename="usr/abc.txt";

open(FILE,"$filename")||die"不能打开文件$filename\n; #将数据指定给纯变量$line(一行一行地)

while($line=)

{

print"$line";

}

close(file); 就会把abc.txt这个文件的内容显示出来。

语法2:open(filehandle,"<$filename")

说明:这个语法也可以打开一个存在的文件(read only)。

示例

$filesname="usr/abc.txt";

open(file,"<$filename")||die"不能打开文件$filename\n";

@array= # 将 全部的数据内容都指定给数组 @array

close(file);

print "@array"; # 也会把abc.TXT这个文件的内容显示出来。

语法3:open(filehandle,">$filename")

说明:建立一个新的文件(write only);如果已经存在这个文件了,就会把旧文件名覆盖掉。并可用print filehandle的方式将数据存入打开的文件中。

示例

$filename="/usr/abc.txt";

open(file,">$filename")||die"不能打开文件$filename\n;

print file "this is a new line1\n; # \n是换行字符

print file "this is a new line2\n;

close(file); # 会将数据存在一个新文件中。

语法4:open(filehandle,">>$filename")

说明:数据用附加的方式定入一文件(write only),如果指定的文件名不存在的话就会建立一个新的文件。

示例

$filename="/path/abc.txt";

open(file,">>$filename")||die"不能打开文件$filename\n";

print file "this is a new line1\n";

print file "this is a new line2\n";

close(file); # 会打数据附加(append)到一个文件(abc.txt)中。

语法5:open(filehandle,"|unix command")

说明:就会把在filehandle的数据输入给unix的指令来作处理。

示例

$mailprog="/usr/ucb/mail"; # unix系统上的寄信程序(一定要加绝对路径)

$who="mqingyi@126.com";

$open(file,"|$mailprog$who")||die"打开失败\n";

print file "I love you!\n";

print file "I want to see you.\n";

close(file);

该段代码通过 unix 系统的 mail 程序,将 FILE 这个 FILEHANDLE 的数据内容寄给 $who 这个变量所指定的收信人。


指令:close

用法:close(filehandle)

说明:用 open 这个函数来打开一个 filehandle 之后,一定要用 close 批这个函数把所打开的 filehandle 关闭。

示例

open(filehandle,"$filename");

close(filehandle);


指令:pack

语法:pack("指定的格式",list)

说明:pack这个函数会将一个 list 变成所指定的二进制数据格式。在CGI程序分割解码过程中,会用到 pack 这个函数。

示例

$string=pack("c",65); #这时 $string="a"; 将65这个ascii码转换成一个unsigned字符,其中c就是指定指转换成 unsigned 字符的意思。


指令:read

语法:read(filehandle,$string,length) 其中 length 是代表读入字符串的长度(bytes)。

说明:用 read 这个函数把 filehandle 中的数据依指定的字符串长度读入之后指派给 $string 这个变量。在cgi程序分割解码过程中,如果 FORM 的传送方式是设定为POST的话,就会将传送的数据设定为标准输入,所以会将数据内容指定给 STDIN 这个标准输入的 filehandle ,而CGI环境变量 $env{‘content_length‘} 就是代表使用者送出数据内容的长度,因此我们要用 read 这个函数来取得使用者送出的数据内容。

示例

read(stdin,$buffer,$env{‘content_length‘}); # 就会将 stdin 这个标准输入 filehandle 中的数据依指定的字符串长度读入,再指派给 $buffer 这个变量。


指令:exit

语法:exit

说明:退出执行的程序。

示例

print"i love cgi\n"; exit; # 表示显示完 "i love cgi" 以后,将退出这个程序。


5    文件操作

大多数 Perl 程序都不是孤立的,它们与环境相互作用。很多的程序也需要通过文件操作实现数据的存贮和交换。文件句柄(file handle)是 Perl 程序中为程序和外部世界提供 I/O 连接的名称。建议在 Perl 程序中文件句柄全部使用大写字母,以示与变量等字符串的区别。特别地,可以将 STDIN/STDOUT/STDERR 也认为是 Perl 的文件句柄,分别代表 标准输入/标准输出/标准错误输出。

打开及关闭文件

Perl的文件操作与C语言极为相似。如:

    open(FILENAME,"abc.txt");

该调用为读文件打开,若为写文件而打开,需在文件名前加上大于号:

    open(FILENAME,">abc.txt");

若要追加至文件尾,可在文件名前加上两个大于号:

    open(FILENAME,">>abc.txt");

以上三种open()格式在成功时返回真,失败时返回假。但程序中通常没有提示,出错时往往会被人们忽略。 通常当需要给出出错提示时,可加入die()函数。例如:

    open(OUTFILE,">/tmp/outfile")|| die "出错,不能建立/tmp/outfile\n";

当 open 操作失败时,就会执行 die 给出出错提示。

对文件句柄的操作完成后,可以用 close 操作符关闭文件。如:

    close(OUTFILE);