2013-07-01 7 views
-3

$test=0$test1=1이라는 변수가 있습니다. 이 값을 $test="false"$test1="true"으로 바꾸려면 $test=0$test1=1 값을 입력해야합니다. 어떻게하면됩니까? $_이 참변수의 값을 문자열로 바꾸는 방법

for ($test, $test1) { 
    $_ = $_ ? "true" : "false"; 
} 

경우, 삼항 연산자가를 반환

+0

'0'은 이미 거짓이고 '1'은 이미 사실임을 알아야합니다. 값을 문자열로 변경하면 두 값이 모두 true가됩니다 (Perl에 관한 한). 유일한 차이점은 true/false가 사람이 읽을 수 있다는 것입니다. – TLP

+0

나는 변수 값을 대체해야하는 보고서를 생성하고있다. – Rudra

+0

이 경우,'print $ test? "true": "false". – TLP

답변

1

do을 사용할 수 있습니다. 특정 조건이 true로 평가되는 동안 지정된 코드 블록을 반복하는 데 사용됩니다.

do { $_ = $_ ? 'true' : 'false'; } for $test, $test1; 
0

것은 정규식 :이

if ($test =~ m/\d/) { 
    $test = "false";  
} 
if ($test1 =~ m/\d/) { 
    $test = "true";  
} 

또는 Scalar::Util::looks_like_number()

+0

아니요 작동하지 않습니다 – Rudra

+0

어떤 exaclty가 작동하지 않습니까? –

0
당신은 루프에 대한 간단한 사용하여이 작업을 수행 할 수

으로 시도 문자열 "true" 및 그 반대의 경우 삼항 연산자의 반환 값은 $_으로 지정됩니다. 변수는 루프 내에서 $_으로 앨리어스 (alias)되므로 원본 변수가 변경됩니다.

관련 문제