所以我在尝试拆分具有目录完整路径的变量时遇到问题。我想获取此路径的'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吗?
提前致谢!
答案 0 :(得分:0)
尝试:
my @files = glob($log_file);
use Data::Dumper;
print Dumper(\@files);