2014-09-26 2 views
1

사용자 입력 변수를 초기 디렉토리 이름으로 사용하지만 디렉토리를 확장하고 하위 폴더를 만들려고 할 때 해당 변수를 사용하면 경로에서 문제가 발생합니다.perl에서 변수를 디렉토리 이름으로 사용

#!/usr/bin/perl 
use strict; 
use warnings; 

print "What would you like to name your directory?\n"; 
chomp(my $directory = <STDIN>); 

mkdir $directory, 0755; 
mkdir $directory/data, 0755; ##<----<<Error begins here## 
mkdir $directory/data/image, 0755; 
mkdir $directory/data/cache, 0755; 
+4

'진단을 사용하십시오;'다시 시도하십시오. –

+0

엄청난 도움이되었습니다. – 1up

+0

'use strict;와'use warnings;에 대한 명성. 새로운 사용자가 이미 가장 중요한 교훈을 얻은 것을 알게되어 반갑습니다. – Miller

답변

4

Perl에서 인용 부호가없는 /은 구분 또는 정규식 일치를 의미합니다.

mkdir "$directory/data", 0755; 
3

또는

use File::Path qw/ make_path /; 

make_path("${directory}/data/image", "${directory}/data/cache"); 

가 당신을 위해 중간 디렉토리를 생성합니다 시도 : 그것은 문자열의 일부 경우 견적.

파일 조작을위한 OO 인터페이스가 더 좋은 Path::Tiny 또는 Path::Class 모듈을보고 싶을 수도 있습니다.

관련 문제