2014-01-22 5 views
0

open to wrtie를 사용하고 있습니다. 하지만 내가 파일 이름에 추가하고자하는 선언 된 변수가 있습니다. 가능한 모든 것을 시도했지만 작동하지 않습니다. 나는 약 100 줄짜리 스크립트를 가지고 있지만, 변수가 어디서나 코드에서 변경되지 않는다고 확신한다.perl에서 파일 이름 끝에 변수 추가

my $env = "TEST"; 
some code; 
open $file, '>>', 'filename_$env.txt' or die; 
my code; 

하지만 항상 파일 이름에 $ env가 반환되지만 값은 반환되지 않습니다. 나는 $ env 주위에 _, $ "env, curlies 등의 주위에"_ "없이 시도했습니다. 어리석은 실수는 무엇입니까?

+0

quotes는 # $ file, '>>', "filename_ $ env.txt"를 열거 나 죽여야합니다. – nexoma

+1

'TEST'에서 따옴표를 사용하지 않았습니까? – TLP

+0

나는 그랬다. 내 코드에서 변수 decalaration 문제가 없습니다. 나는 그 질문에서 따옴표를 놓쳤다. 죄송합니다. – user3164754

답변

5

사용 따옴표 :

open $file, '>>', "filename_$env.txt" or die; 

작은 따옴표는 변수 확장을 방지한다. 비슷한 변수 이름이있는 경우

open $file, '>>', "filename_${env}.txt" or die; 

은 어떤 모호성을 방지 할 수 : 말 또한

.

+0

와우 .. 누가 그걸 th would 거리 겠어? 나는 모든 것을 시도했다. 실제로 나는 결과를 사용하여 achived. 이름과 env 변수를 연결합니다. 신속한 답변을 보내 주셔서 감사합니다. – user3164754

+0

글쎄, 분명히 당신은 모든 것을 다 읽지 못했다. (http://perldoc.perl.org/perldata.html#Scalar-value-constructors) :-) –