【问题标题】:How to open multiple files in Perl如何在 Perl 中打开多个文件
【发布时间】:2013-05-10 02:04:22
【问题描述】:

伙计们我现在真的很困惑。我是学习 Perl 的新手。我读的书有时会写 Perl 代码,有时会写 Linux 命令。

他们之间有什么联系吗? (Perl 代码和 linux 命令)

我想使用 Perl 代码打开多个文件,我知道如何在 Perl 中打开单个文件:

open (MYFILE,'somefileshere');

我知道如何在 Linux 中使用 ls 命令查看多个文件。

那么怎么做呢?我可以在 perl 中使用 ls 吗?我只想打开某些文件扩展名不可见的文件(perl 文件)(我猜我不能使用 *.txt 等)

小伙伴们帮忙

【问题讨论】:

    标签: perl


    【解决方案1】:

    使用system函数执行linux命令,glob - 获取文件列表。

    http://perldoc.perl.org/functions/system.html

    http://perldoc.perl.org/functions/glob.html

    喜欢:

    my @files = glob("*.h *.m"); # matches all files with a .h or .m extension
    system("touch a.txt"); # linux command "touch a.txt"
    

    【讨论】:

    • 您能否编辑您的答案并使用 perl 代码示例。请我是新人。我不能很好理解
    • 但我在我的文件中看不到任何文件扩展名。怎么做*模式的事情?
    • 你不懂。我的文件只是普通的“thisisjustanexamplefilename”而不是“thisisjustanexamplefilename.txt 或 .m 或任何点”,它们是 perl 文件
    【解决方案2】:

    目录句柄也很不错,尤其是在遍历目录中的所有文件时。示例:

    opendir(my $directory_handle, "/path/to/directory/") or die "Unable to open directory: $!";
    
    while (my $file_name = <$directory_handle>) {
      next if $file_name =~ /some_pattern/; # Skip files matching pattern
      open (my $file_handle, '>', $file_name) or warn "Could not open file '$file_name': $!";
      # Write something to $file_name. See <code>perldoc -f open</code>.
      close $file_handle;
    }
    closedir $directory_handle;
    

    【讨论】:

      猜你喜欢
      • 2012-12-06
      • 1970-01-01
      • 2010-12-02
      • 1970-01-01
      • 1970-01-01
      • 2011-01-28
      • 1970-01-01
      • 2021-11-14
      • 2010-12-22
      相关资源
      最近更新 更多