4
사용자 입력을 통해 결정된대로 경로 이름/파일을 가져 와서 삭제하는 스크립트가 있습니다. 각 디렉토리를 개별적으로 나열하고 각 디렉토리에서 이전 파일 삭제에 대한 확인을 요청합니다.다차원 배열을 통한 Perl Foreach?
그래서, 문자열 (전체 경로 이름)을 보유하는 여러 배열 (각 디렉토리)을 보유하는 배열 (@oldDirs)이 있습니다.
@oldDirs = (@AirDefense,@Arcsight,@Avocent,@BlueCoat,@Checkpoint,@Cisco,@Crossbeam,@FireE ye,@lostAndFound,@rancid,@Riverbed,@Symantec,@Wiki,@WLAN)
if($oldPathsSize != 0)
{
my $dirNamesCounter = 0;
my @dirNames = ('/AirDefense','/Arcsight','/Avocent','/BlueCoat','/Checkpoint','/Cisco','Crossbeam','FireE ye','/lost+found','/rancid-2.3.8','/Riverbed','/Symantec','/Wiki','/WLAN');
foreach my @direc (@oldDirs)
{
my $size = @direc;
print "Confirm Deletion of $size Old files in $dirNames[$dirNamesC]: \n";
$dirNamesCounter++;
foreach my $pathname (@direc)
{
print "\t$pathname\n";
}
print "\nDelete All?(y/n): ";
my $delete = <STDIN>;
chomp($delete);
if($delete eq "y")
{
#delete file
}
}
}
내 문제는 첫 번째 foreach 문을 사용하는 것입니다. 둘 다 배열이고 @direc는 허용되지 않습니다. foreach의 해당 부분에 스칼라 값이 있어야하기 때문입니다. 그러나 그들은 모두 배열입니다! 가능하다면 어떻게해야합니까?
Ohhhhhhh, 참조 . 장난! 좋아, 답장과 링크에 대해 감사드립니다. – geeoph
\는 분배 형이므로이 함수는 작동합니다 :'my @multi = \ (@ array1, @ array2);' – ysth
grate, 고맙습니다. – Jerry