2
사용자 입력에서 'list'라는 고정 디렉토리까지 하위 디렉토리를 검색 할 수 있어야합니다. 문제는 데이터를 검색하여 나중에 표시 할 수 있도록 해시에 경로를 저장하는 방법입니다.디렉토리 검색 및 해시 저장
내 디렉토리 트리 :
->blue -->Aug21 --->projA ---->list ----->name
/tmp/general/place/brand->red -->Jan03
->yellow -->June22 --->projB ---->list
directory.pl :
use strict;
use warnings;
print "Searching Directory...\n";
&search_dir('/tmp/general/place/brand'); #could be 'tmp/general/place/brand/blue/Aug21'
my ($input,$tt,$str,$fn,@pp,@cap);
sub search_dir{
$input=shift;
opendir DH,$input or die"$!";
while($_=readdir(DH)){
next if $_ eq "." or $_ eq "..";
if ($_ eq "list"){
$fn = $input.'/'.$_;
push @pp, $fn;
return;
}
else{
$fn = $input.'/'.$_;
}
if(-d $fn){
push @cap,$fn;
}
}
if(scalar @cap == 0){
return;
}
foreach (@cap){
&search_dir($_) ;
}
}
if (@pp){
print "Located directory...\n";
foreach $tt (@pp){
$str='/tmp/general/place/brand';
$tt=~ s/$str//g;
print $tt,"\n";
#Hash? $file{$color}{$date}{$quantity}{$list}= split (/\//,$tt);
}
}
else {
print "Could not locate directory\n";
}
예상 출력 : 그것은 아마 쉽게 사용할 찾을 리눅스에서
Searching Directory...
Located Directory...
/blue/Aug21/projA/list
/yellow/June22/projB/list
Info :1
Color :blue
Date :Aug21
Project :projA
Info :2
Color :yellow
Date :June22
Project:projB
사용 ['파일 : Find'] (http://search.cpan.org/perldoc?File%3A%3AFind) – TLP
내 질문은 내가 해시로 검색 한 경로를 저장하는 방법입니다. 감사. – rein
예, File :: 대부분의 코드를 대체 할 수 있습니다. 귀하의 질문을 이해하지 못했습니다. 해시가 어떻게 작동하는지 모르십니까? '$ 해시 {경로} = $ 경로'. – TLP