Tips in Action‎ > ‎기타‎ > ‎

와일드 카드를 사용한 파일 목록 읽기

전종필

어떤 디렉토리 안에 있는 특정한 패턴의 파일(혹은 모든 파일)의 목록을 얻으려 할 때는 glob 함수를 사용합니다. (glob이 연산자로 불리우는 경우도 있고 함수로 불리우는 경우도 있지만 그 것이 크게 중요하지는 않습니다.) 만일 모든 cgi 파일이라면, 셸 프롬프트에서는

$ ls *.cgi
와 같이 할 것입니다.
Perl의 경우도 다르지 않습니다.

@cgifiles = glob('*.cgi');
@libs = glob('/lib/*.[1-9]');
glob 함수는 내부적으로 와일드카드의 해석을 셸에 의존합니다. tcsh, csh 또는 sh을 사용하는데, 따라서, 셸의 해석방법에 따라서 Perl에서도 다른 결과가 나올 수도 있습니다. 윈도즈의 경우에는 File::Glob이라는 모듈을 활용합니다.
다음과 같이 glob함수(또는 연산자)를 이용하지 않을 수도 있습니다.

@cgifiles = <*.cgi>;
이 경우의 <...>는 파일 핸들과는 관계가 없다는 점을 기억해 두시기 바랍니다. 
Comments