전종필 문자열 내에 실행문을 직접 삽입할 수 있습니다. 보통의 print 문에서는
와 같은 식입니다.만일 print문 안에 이런 계산식이 많이 들어가야 한다면, 조금 귀찮을 수도 있습니다. 이런 경우 문자열 내에 계산식을 직접 삽입하는 것이 간편하겠다고 생각되면 다음과 같은 형식을 사용합니다.
문자열 내에서 ${스칼라변수리퍼런스}는 그 리퍼런스가 가리키는 변수의 값을
나타냅니다. 예를 들면 다음과 같은 경우입니다.
위 ${ \($income - $outcome) } 는 ${ }의 안에
\($income - $outcome) 을 가지고 있습니다. 목록(list)을 나타내는 괄호앞에
\(백슬래쉬)를 두면 목록의 각 요소에 대해 리퍼런스를 만드는 것과 같습니다. 그래서
는
와 같게 되고, 스칼라 문맥에서 목록이 사용되면 맨 뒤의 것만 사용되게 되어 맨 마지막 요소인
$income - $outcome 의 결과 값에 대한 리퍼런스가 ${ }와 함께 사용되어 계산값이 출력 되는 것입니다. 맨
마지막 값이 사용되는 것을 직접 확인하려면 괄호의 앞부분에 다른 값을 넣고 컴마로 구분해 보면 됩니다.
이 경우 $outcome / $income 부분은 사라져 알 수
없습니다.배열 역시 문자열 안에 넣을 수 있습니다. 문자열 내에서 배열리퍼런스의 사용은 @{배열의리퍼런스}의 형식입니다. 물론 "@$array_ref"와 같은 맥락입니다.
이 경우에는 \() 대신 []를 사용합니다. []는 이름없는 배열(anonymous array)의
리퍼런스를 나타냅니다. 활용은 여러분의 생각에 달렸지만, 조심해야 할 것은, 여러분의 프로그램 사용자가 입력한 내용을 그 대로 적용하려고 하지는
마십시오. 다음 예제를 보세요.
만일 $usercmd에 "rm -Rf /" 같은 내용이 들어 있다면 큰일이죠 !!!! |
Tips in Action > 문자열 >