我有如下代码。如果我在我的函数(由 调用)中打开文件$File::Find::name
(在本例中为。”./tmp/tmp.h
search
File::Find::find
如果我直接在另一个函数中打开文件,我可以打开文件。有人可以告诉我这种行为的原因吗?我在 Windows 上使用 activeperl,版本是 5.6.1。
use warnings;
use strict;
use File::Find;
sub search
{
return unless($File::Find::name =~ /\.h\s*$/);
open (FH,"<", "$File::Find::name") or die "cannot open the file $File::Find::name reason = $!";
print "open success $File::Find::name\n";
close FH;
}
sub fun
{
open (FH,"<", "./tmp/tmp.h") or die "cannot open the file ./tmp/tmp.h reason = $!";
print "open success ./tmp/tmp.h\n";
close FH;
}
find(\&search,".") ;