perl文件操作的一些例子分享_perl

删除文件

使用unlinke函数,比如unlink $file, unlink $file1, $file2, $file3

打开文件

使用三参数的形式打开文件,这样非常便于区分模式和文件名,perl 5.6之后的版本都支持这种方式。

复制代码 代码如下:

#Open the 'txt' file for reading
open FH, '<', "$file_name.txt" or die "Error:$!\n";
#Open the 'txt' file for writing. Creates the #file_name if it doesn't already exist #and will delete/overwrite a pre-existing file of the same name
open FH, '>', "$file_name.txt" or die "Error:$!\n";
#Open the 'txt' file for appending. Creates the #file_name if it doesn't already exist
open FH, '>>', "$file_name.txt" or die "Error:$!\n";
#Open the 'txt' file for a 'read/write'. #Will not create the file if it doesn't #already exist and will not delete/overwrite #a pre-existing file of the same name
open FH, '+<', "$file_name.txt" or die "Error:$!\n";
#Open the 'txt' file for a 'read/write'. Will create #the file if it doesn't already exist and will #delete/overwrite a pre-existing file #of the same name
open FH, '+>', "$file_name.txt" or die "Error:$!\n";
#Open the 'txt' file for a 'read/append'. Will create #the file if it doesn't already exist and will #not delete/overwrite a pre-existing file #of the same name
open FH, '+>>', "$file_name.txt" or die "Error:$!\n";

一次性读入整个文件

使用<>在标量环境下一次读入一行,而在列表环境下一次读入所有行,$/存储的是行分隔符,默认是换行符,我们先将$/改掉,这样就可 以在标量环境下一次读入所有行了(这时已经没有行的概念了,就是读入整个文件),你也可以用列表读入所有行然后再将所有行拼到一起,但那样速度很慢。用完 记得将$/改回来。

复制代码 代码如下:

#!/usr/bin/perl
use strict ;
use warnings ;
sub test{
    open FILE, '<', "d:/code/test.txt" or die $! ;
    my $olds = $/ ;
    $/ = undef ;
    my $slurp = <FILE> ;
    print $slurp, "\n" ;
    $/ = $olds ;
    close FILE;
}
&test() ;

也可以使用local关键字来将$/设置为局部变量,这样跳出作用域后,$/又恢复了原来的值。

复制代码 代码如下:

#!/usr/bin/perl
use strict ;
use warnings ;
sub test{
    local $/ ; #??? local $/ = undef ;
    open FILE, '<', "d:/code/zdd.txt" or die $! ;
    my $slurp = <FILE> ;
    print $slurp, "\n" ;
}
&test() ;
1;

最好的方法是使用模块,这样比自己写安全,File::Slurp、IO::All都可以的。

打开文件请用双引号

open文件时,如果文件名有变量替换,最好用双引号而不是单引号,因为单引号无视变量内插。

复制代码 代码如下:

open FILE "<$file" or die $! ; #这样可以。
open FILE '<$file' or die $! ; #这样就不可以,因为$file不会被解释成变量内插。同样<也不会被解释成输入符号。

文件句柄作参数

假设有一个函数test,它有一个参数,是某个文件句柄,那么该如何传递这个参数呢?

方法一,传递参数时,在句柄前面加*

复制代码 代码如下:

sub main {
    open FILE, '+<', 'test.data' or die $!;
    &test(*FILE);
    close FILE;
}

方法二,使用open my $FILE的形式打开文件

复制代码 代码如下:

sub main {
    open my $FILE, '+<', 'test.data' or die $!;
    &test($FILE);
    close $FILE;
}

时间: 2024-09-20 13:39:31

perl文件操作的一些例子分享_perl的相关文章

Perl文件读取的经典用法分享_perl

用Open() 函数打开文件 打开文件的常用方法是: 复制代码 代码如下: open(FH, "< $filename")or die "Couldn't open $filename for reading: $!"; open() 函数通常带有两个参数,第一个为文件句柄,用于指向打开的文件,第二个参数是文件名及模式(文件的打开模式)的混合体,如果文件被成功打开,open()函数返回true,否则为false.我们用"or"来测试该条件.

perl 文件操作总结_perl

一.打开.关闭文件     open的返回值用来确定打开文件的操作是否成功,当其成功时返回非零值,失败时返回零,因此可以如下判断:    if (open(MYFILE, "myfile"))     {        # here is what to do if the file opened successfully    }    当文件操作完毕后,用close(MYFILE); 关闭文件.    读:open(文件句柄,"<文件名")  open(文

Linux/Unix下安装Perl模块的两种方法分享_perl

方法一.手工安装的步骤 从CPAN下载了DBI模块1.13版的压缩文件DBI-1.13.tar.gz,假设放在/usr/local/src/下. cd /usr/local/src 解压缩这个文件: tar xvzf DBI-1.13.tar.gz 这时会新建一个DBI-1.13的目录. cd DBI-1.13 生成makefile: perl Makefile.PL 建立模块 make 测试模块 make test 如果测试结果报告"all test ok",您就可以放心地安装编译好

几个文件操作的小例子

最近一直在学习java web方面的东西,本来想完整的写一篇java web方面的文章,但是那一块太杂了,自己现在也不是很清晰,主要是myeclipse+Tomcat,每次启动tomcat都要花很长的时间,所以java web方面的文章目前还没有写,今天就先将自己之前的东西贴出来吧. [案例1]获取文件的属性 运行结果: 代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 3

php文件操作的简单例子

 代码如下 复制代码 //获取文件的主要信息. $file = "data.txt"; if(is_dir($file)) {     echo "文件 $file 是个目录";     echo "<br/>"; } else {     echo "文件 $file 不是目录";     echo "<br/>"; } if(is_file($file)) {     echo

perl几个文件操作例子_perl

perl用的最多的地方就算是文件处理了,下面我就总结了一下perl文件操作的一些东西,并且有具体的例子,通过下面的例子,加强我们对perl文件操作的理解. 删除文件 使用unlinke函数,比如unlink $file, unlink $file1, $file2, $file3 打开文件 使用三参数的形式打开文件,这样非常便于区分模式和文件名,perl 5.6之后的版本都支持这种方式. 复制代码 代码如下: #Open the 'txt' file for reading open FH, '

Go语言文件操作的方法_Golang

本文实例讲述了Go语言文件操作的方法.分享给大家供大家参考.具体如下: 关闭文件: 复制代码 代码如下: func (file *File) Close() os.Error {     if file == nil {         return os.EINVAL     }     e := syscall.Close(file.fd)     file.fd = -1 // so it can't be closed again     if e != 0 {         retu

php文件操作小结(删除指定文件/获取文件夹下的文件名/读取文件夹下图片名)_php技巧

本文实例分析了php文件操作的方法.分享给大家供大家参考,具体如下: 一.删除文件 unlink() 语法: int unlink(string filename); 返回值: 整数 函数种类: 文件存取.如: unlink("tmp/test.txt"); 二.获取文件夹下面的文件名 $dir = "message/"; // 文件夹的名称 if (is_dir($dir)){ if ($dh = opendir($dir)){ while (($file = r

php文件操作相关类实例_php技巧

本文实例讲述了php文件操作相关类.分享给大家供大家参考.具体如下: <?php class file_dir { function check_exist($filename) //检查目录或文件是否存在 { if(file_exists($filename)) { return true; } else return false; } function create_dir($dirname,$mode=0777) // 一次只能创建一级目录 { if(is_null($dirname) |