Perl句柄学习

文件句柄(filehandle)是Perl程序I/O链接的名字,是连接的名字,而非文件的名字。

建议文件句柄的所有字母均大写。

Perl自身有六个文件句柄: STDIN, STDOUT, STDERR, DATA, ARGV, ARGVOUT。

 

文件句柄的打开

open CONFIG, "dino";

open CONFIG, "<dino";

open BEDROCK, ">fred";

open LOG, ">>logfile";

第一例打开了一个名为CONFIC的文件句柄,它指向dino文件。也就是说,文件dino将被打开,其所包含的数据通过CONFIG传给程序。

第二例与第一例类似,它是和第一例是一样的,只是<明确的指明了"使用这个文件惊醒输入操作",虽然默认的情况就是输入。

第三例使用了大于号>来表明是文件的输出。如果存在这样的文件,则清空它,并将新的数据写入。

第四例使用了两个大于号>>,它打开一个文件,数据追加到文件后面。也就是说,如果文件存在,将把新数据天道后面,如果不存在,则和大于号>一样,创建文件并写入数据。

 

Bad文件句柄

如果从一个bad文件句柄读入(文件句柄没有恰当打开),会立刻到达文件结尾(EOF)。如果写到一个bad文件句柄,数据会被悄悄地丢掉。

可使用-w或use warnings来避免。

 

关闭文件句柄

close CONFIG;

 

严重错误和die

当Perl内部发生一个严重错误,程序将停止运行,并告诉你失败的原因。可以用die函数来创建我们自己的严重错误。

die函数将打印出你给它的消息,并确保程序退出时为非零的退出状态。

 

警告信息和warn

与die类似,但是程序不会退出。

 

#!/bin/perl

use warnings;
use strict;

if (@ARGV < 1) {
 warn "Not enough argument. $!";
}

if (!open FILEHANDLE, "hello.pl") {
 die "Open source handle fail. $!";
}
if (!open BACKUP, ">hellobk.pl") {
 die "open backup handle fail. $_";
}

while (<FILEHANDLE>) {
 chomp;
 print "$_/n";
 print BACKUP "$_/n";
}

close BACKUP;
close FILEHANDLE;

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值