如何在Perl中打开多个文件

时间:2013-05-10 02:04:22

标签: perl

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

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

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

open (MYFILE,'somefileshere');

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

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

一点帮助人

2 个答案:

答案 0 :(得分:2)

使用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"

答案 1 :(得分:0)

目录句柄也非常好,特别是对于遍历目录中的所有文件。例如:

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;