Perl - 读取具有特定扩展名的文件名

时间:2015-03-30 12:43:09

标签: perl file

需要使用wildcards阅读具有特定扩展名的两个文件。我需要这样的东西:

打开文件夹并读取文件

if file1 is ending with .xml
then $xmlfile = "fileName.xml"

if file2 is ending with .txt
then $txtfile = "fileName.txt"

文件名始终在文件名中包含一些non_constat_data。但它们始终以constat字符串开头,以扩展名.xml.txt结束。

2 个答案:

答案 0 :(得分:0)

你可以写这样的功能

sub first_file_of_the_type {
    my $ext = shift =~ s/.*\.//r;
    +(<*.$ext>)[0];
}

然后以这种方式使用它

my $xmlfile = first_file_of_the_type("fileName.xml");
my $txtfile = first_file_of_the_type("fileName.txt");

答案 1 :(得分:0)

如果我理解你,那么你想做这样的事情。

use warnings;
use strict;

opendir my $dir, "/path/to/folder" or die "Can't open directory: $!";
my @files = readdir $dir;
closedir $dir;

foreach my $file (@files)
{
    if ($file =~ m/\.xml$/)
    {
        my $xmlfile = $file;
        print "$xmlfile\n";
    }
    elsif ($file =~ m/\.txt$/)
    {
        my $txtfile = $file;
        print "$txtfile\n";
    }
}

这将打开文件夹并查找文件扩展名并将文件分配给变量。

注意:这不是读取文件内容。