현재 펄을 배우고 있으며 재귀 서브 루틴을 사용하여 디렉토리 트리를 트래버스하는 방법을 설명하는 코드를 발견했습니다. 이것은 내가 서브 루틴을 이해하고 어떻게 작동하는지, 그러나 나는이 문장 이해하지 못했다변수에 적용 (shift || '.')
use strict;
use warnings;
use 5.010;
my $path = shift || '.';
traverse($path);
sub traverse {
my ($thing) = @_;
return if not -d $thing;
opendir my $dh, $thing or die;
while (my $sub = readdir $dh) {
next if $sub eq '.' or $sub eq '..';
say "$thing/$sub";
traverse("$thing/$sub");
}
close $dh;
return;
}
문제의 코드입니다 : , 나는 그것이 알고 (내 $ 경로 = 변화를 || '.') 서브 루틴으로 전달되는 변수,하지만 어떤 값을 가지고 있는지 모르겠다. 미리 감사드립니다.