• 关于perl中文件操作句柄使用的几种方式-基础版


    在perl中存在几种句柄使用的方式,其中open为最基础的使用方法,下面把我遇到的几种句柄的使用方法做一个小小的总结:

    open方法的使用:

    open方法是教程中最基础的打开文件的句柄使用方法,较为常见

    教程中给出的使用方式有三种使用方式

    open FILEHANDLE,EXPR

    open FILEHANDLE,MODE,LIST

    open FILEHANDLE

    我在这里只介绍简单的使用方式,其它的可自行进行扩展学习。

    open文件内容的读取和写入:

    use strict;

    #准备进行读取的文件

    my $my_file = "D:/file/file.txt";

    #FILEHANDLE 为自命名句柄,大写,<可省略

    open (FILEHANDLE,"< $my_file") or die "Can't open $my_file";

    #打印句柄读取内容

    print <FILEHANDLE>;

    #需要写入信息的文件,可以存在也可以不存在

    my $print_file = "D:/file/file2.txt";

    #一个>表示删除原有文件写入,两个>表示追加写入

    open (FILEHANDLE2,"> $print_file") or die "Can't open $print_file";

    #将读取的数据写入到需要写入的文件中,当然这里要写入的信息不一定是句柄,可以是任何内容,写入文件的句柄是需要存在的。

    print <FILEHANDLE2> <FILEHANDLE>;

    close FILEHANDLE;#关闭读取文件句柄

    close FILEHANDLE2;#关闭写入文件的句柄

    IO::File模块的使用:

    IO::File模块需要先创建新的文件句柄:然后open方法打开文件,它和open函数的工作方法类似:

    use strict;

    use IO::File;#导入IO模块

    #创建新的文件句柄,此处的文件句柄名需要根据自己的要求来命名,可以不是大写字母

    my $filehandle = new IO::File;

    #用句柄打开文件file.txt,<表示文件为被读取

    $filehandle->open("< file.txt") or die "Can't open file.txt";

    #打印读取的文件内容

    print <$filehandle>;

     #创建一个新的文件句柄

    my $filehandle1 = new IO::File;

    #该文件句柄打开需要写入的文件

    $filehandle1->open("> file1.txt") or diw "Can't open file1.txt";

    #将hello word 信息打印入该文件句柄

    $filehandle1->print ("hello word");

    $filehandle->close;#将读取文件的句柄关闭

    $filehandle->close;#将写入文件的句柄关闭

    FileHandle模块的使用:

    FileHandle方法应该是在IO模块中的方法中衍生出来的。

    use strict;

    use FileHandle;#导入FileHandle模块

    #创建读取文件的句柄

    my $filehandle = new FileHandle ("< file.txt") or die "Can't open file.txt";

    #打印该文件内的内容

    print <$filehandle>;

    #创建写入文件的文件句柄

    my $filehandle1 = new FileHandle("> file1.txt") or die "Can't open file1.txt";

    #将hello word信息写入该句柄中

    print <$filehandle1> "hello word";

    close $filehandle;#关闭读取文件的句柄

    close $filehandle1;#关闭写入文件的句柄

    以上三种方法在开发的过程中都曾尝试过,最为常用的为最后一种方法,使用FileHandle模块方法,比较简洁,对比第二种方法,将open和创建归为一个步骤来进行解决。但是对于这三种方法各自在性能方面或者其它方面的优缺点暂时我还不能进行解答,只是将该三种创建句柄的方法归纳出来供大家进行参考和使用,在本总结中如果存在不正确的地方,也请大家给我留言进行修正,如果对该方面了解比较多的,也可以提出更对宝贵意见,仅以此来抛砖引玉。

    在后面的章节中我会详细对文件句柄进行更深入的探讨,会对后两个模块进行更深入的研究和解析。

  • 相关阅读:
    Use Module and Function instead of Class in Python
    以命令行方式使用Desktop版Ubuntu
    python中两种拷贝目录方法的比较
    查找重复文件并删除的工具
    Manage sshd Service on CentOS
    Java多线程间的数据共享
    并发 总结
    MapReduce 过程分析
    java能不能自己写一个类叫java.lang.System/String正确答案
    生产者消费者模式--阻塞队列--LOCK,Condition--线程池
  • 原文地址:https://www.cnblogs.com/Mr-CHENs/p/5873009.html
Copyright © 2020-2023  润新知