Perl:拆分包含目录路径的变量

时间:2015-02-23 23:50:52

标签: regex perl path split

所以我在尝试拆分具有目录完整路径的变量时遇到问题。我想获取此路径的'logs'目录下的文件: '/ NFS / FM /磁盘/ fm_mydiskhere_00000 /用户/ ME / repotest / myrepo /工具/ toolsdir /日志/ *';

在我的Perl脚本中,我有一个包含此路径的变量:'$ log_file'。当我打印'$ log_file'时,它包含整个路径;我想转到最后一个目录'logs'并获取它下面的文件。顺便说一句,这个完整的路径在一个单独的配置文件中,我的Perl脚本以这种方式读取:

sub read_file {
my ($log_file) = shift(@_);

info ("Using file : $log_file");
my $fh = new FileHandle ("$log_file");
printError ("Could not open this file : '$log_file' - $!") unless defined $fh;

my $contents;
{
    local $/ = undef;
    $contents = <$fh>;
}
$fh->close();
eval $contents;
if ($@) {
    chomp $@;
    my $msg = "BAD (perl) syntax in file:\n\n$@\n";
    if ( $msg =~ /requires explicit package name/ ) {
        $msg .= "\n  -> A 'requires explicit package name' message means".
            " a NON-VALID variable name was found\n";
    }
    die "Error: $msg\n\n";
}
return 1;

}

我在另一个子程序中使用变量$ log_file:

my $fh = read_file ($log_file);
if ($log_file eq "abc.txt"){
while (my $line = <$fh>) {
#do something
}
}

请问有人帮我吗?我错过了什么或者以错误的方式使用$ log_file吗?

提前致谢!

1 个答案:

答案 0 :(得分:0)

尝试:

my @files = glob($log_file);
use Data::Dumper;
print Dumper(\@files);