检查文件是否存在(的Perl)

你会如何​​去写一个Perl脚本来检查文件是否存在?

例如,如果我要检查$文件是否在$位置存在。

目前我使用一个漫长的子程序(见下文),我敢肯定有更简单的方法呢?

# This subroutine checks to see whether a file exists in /home sub exists_file { @list = qx{ls /home}; foreach(@list) { chop($_); if ($_ eq $file) { return 1; } }

--------------解决方案-------------

使用-e运营商:

if (-e "$location/$file") {
print "File $location/$file exists.\n";
}

你可能想使用的东西比串联更强大的加盟$location$file ,但。 另请参阅文件的文件::规格(包括使用Perl),或者路径::类。

其他人的解决方案误报“无法确定文件是否存在”作为“文件不存在”。 下列不从该问题的影响:

sub file_exists {
my ($qfn) = @_;
my $rv = -e $qfn;
die "Unable to determine if file exists: $!"
if !defined($rv) && !$!{ENOENT};
return $rv;
}

如果你还需要检查它是否是一个纯文本文件(即不是目录,符号链接等)或没有,

sub is_plain_file {
my ($qfn) = @_;
my $rv = -f $qfn;
die "Unable to determine file type: $!"
if !defined($rv) && !$!{ENOENT};
return $rv;
}

文档: -X

是的,假设$your_file是你检查(像/home/dude/file.txt)文件:

你可以只用

if(-e $your_file){
print "I'm a real life file!!!"
}
else{
print "File does not exist"
}

sub file_exists {
return 1 if -f '/home/' . $_[0];
}

并调用它像如

if ( file_exists( 'foobar' ) ) { ... } # check if /home/foobar exists

分类:perl的 时间:2015-03-15 人气:2
本文关键词: perl的
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.398 (s). 10 q(s)