亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区
Chinaunix
標(biāo)題:
求教探索File::Find模塊的深度使用,如過(guò)濾文件
[打印本頁(yè)]
作者:
pigkingone
時(shí)間:
2013-10-01 18:30
標(biāo)題:
求教探索File::Find模塊的深度使用,如過(guò)濾文件
perl中有個(gè)模塊,F(xiàn)ile::Find,搜索目錄,文件用的。平時(shí)很好用。最近突然思考了一個(gè)問(wèn)題,始終理解不透徹。希望大牛幫忙解析:
代碼目的:
假設(shè)目錄文件量非常大,想提高掃描效率。
工作目標(biāo):
有的目錄明確知道不需要掃描。我該如何才能排除他們。不是簡(jiǎn)單的不打印出結(jié)果,而是實(shí)實(shí)在在的不去read這個(gè)目錄?
我看了下這個(gè)模塊,暫時(shí)看到 兩種方法的可能性,我試驗(yàn)了第一種,失敗了。。。不知道我哪里理解錯(cuò)了?
順帶第二種我也沒(méi)信心了,請(qǐng)大家?guī)兔纯次业拇a有什么問(wèn)題,有什么處理的好方法。
代碼:
use 5.010;
use File::Find;
$path=`cd`;
chomp $path;
$option{wanted}=\&want;
$option{untaint}=1;
$option{untaint_skip}=1;
$option{untaint_pattern}=qr\web2$\; #這個(gè)匹配,到底是符合規(guī)則的才處理,還是符合規(guī)則的不處理,應(yīng)該怎么寫(xiě)?這個(gè)參數(shù)我
#無(wú)論怎么改都沒(méi)有起到作用,比如我目錄下有個(gè)子目錄web2,照樣打印出來(lái)了,包括web2的子目錄和文件。。。。why。。。
find(\%option,$path);
sub want{
say $File::Find::name;
}
第二個(gè)方法,是prepross,這個(gè)我只在網(wǎng)上看了有人提到,具體方法和效果也不太理解?
請(qǐng)大牛們幫忙救救。。。。
作者:
wenhq
時(shí)間:
2013-10-01 22:00
next if -d $name ;
作者:
pigkingone
時(shí)間:
2013-10-01 22:02
回復(fù)
2#
wenhq
在什么參數(shù)下,什么位置寫(xiě)呢?
我想要的不只是打印結(jié)果,而是實(shí)實(shí)在在的,不去掃描某子目錄下的文件。
作者:
wenhq
時(shí)間:
2013-10-01 22:04
看下perl 進(jìn)階 第7章 :File::Find
作者:
pigkingone
時(shí)間:
2013-10-01 22:44
回復(fù)
4#
wenhq
是intermediate perl嗎?我搜了沒(méi)有untaint_pattern等關(guān)鍵字。磕芴峁└敿(xì)的信息嗎,謝謝啦。
作者:
wenhq
時(shí)間:
2013-10-02 08:11
是講這個(gè)模塊的呀!
作者:
pigkingone
時(shí)間:
2013-10-02 12:10
回復(fù)
6#
wenhq
因?yàn)槭怯⑽牡模掖蟾艗吡讼,外加搜索了下我使用的關(guān)鍵參數(shù)。是有將,但是好像沒(méi)有我的代碼中的相關(guān)參數(shù)?
作者:
pigkingone
時(shí)間:
2013-10-02 21:13
自己再頂一下。。。
作者:
104359176
時(shí)間:
2013-10-03 20:43
這個(gè)模塊不好用,初學(xué)者建議使用 File::Find::Wanted 中提供的簡(jiǎn)單接口。 find_wanted
To get a list of all files ending in .jpg:
my @files = find_wanted( sub { -f && /\.jpg$/ }, $dir );
For a list of all directories that are not CVS or .svn:
my @files = find_wanted( sub { -d && !/^(CVS|\.svn)$/ }, $dir ) );
It's easy, direct, and simple.
WHY DO THIS? ^
The cynical may say "that's just the same as doing this":
my @files;
find( sub { push @files, $File::Find::name if -f && /\.jpg$/ }, $dir );
復(fù)制代碼
作者:
dqw233
時(shí)間:
2013-10-08 01:14
use 5.010;
use File::Find;
sub want{
say $File::Find::name;
}
$File::Find::skip_pattern = qr/$File::Find::skip_pattern | web2/x; #可以修改skip_pattern,注意加上它的默認(rèn)值。
find(\&want, '.');
作者:
dqw233
時(shí)間:
2013-10-08 01:15
回復(fù)
1#
pigkingone
use 5.010;
use File::Find;
sub want{
say $File::Find::name;
}
$File::Find::skip_pattern = qr/$File::Find::skip_pattern | web2/x;
find(\&want, '.');
復(fù)制代碼
作者:
pigkingone
時(shí)間:
2014-08-14 15:32
skip_pattern方法沒(méi)有試過(guò)。
不過(guò)我發(fā)現(xiàn)prepross這個(gè)option參數(shù)設(shè)置一個(gè)回調(diào)函數(shù)。這個(gè)函數(shù)中過(guò)濾不需要的。retrun需要處理的目標(biāo)的數(shù)組就可以了。
看上去這個(gè)應(yīng)該是起作用了。分享之。
目錄多的情況下,還是有意義的
歡迎光臨 Chinaunix (http://72891.cn/)
Powered by Discuz! X3.2