[완료] perl 의 format 사용에서 궁금한점 여쭤봅니다( @<<<< 가 아닌 가변길이 적용방법 )

jekai의 이미지

안녕하세요,
perl의 format 을 사용하다가 계속 막히는 부분이 있어 여기까지 오게 됐습니다..;;

아래와 같이... format 지정이 되어있을때,

format TEXT =
@<< and..
$value
.
 
$value = "Hello" ;
 
write()

출력되는 형태는 Hel 까지만 출력되겠죠?? 그런데 $value의 길이가 100이 될수도 있고, 10이 될수
있는 상황이면, 어떻게 해야하죠? @<<<< 와 같은 형식이면 나머지는 짤려버리자나요...

그래서 다음과 같이 해봤는데..

format TEXT =
@* and..
$value
.
 
$value = "Hello" ;
 
write()

이와 같은 형식도 출력되는 형태는 Hello@* 로 @*가 왜 찍히는지 모르겠어요..
(@* 뒤에 어떤 글자가 오기만 하면 @* 형태로 찍히네요...)

가변 길이에 대한 format 을 정하는 방법을 좀 알고 싶습니다.

감사합니다.

aero의 이미지

.
.
.
.
.
format 이름과 write에서 format 이름을 생략하면 기본적으로 STDOUT(표준출력)으로 출력합니다.

format =
@* and..
$value
.
 
$value = "Hello" ;
 
write;

결과
Hello and..

그런데 format은 그래픽인터페이스나 정교한 프린터가 없던 텍스트위주의 터미널이나 라인프린터를 사용할 시절에는
유용했으나 요즘에는 잘 쓰이지 않습니다. 다른 템플릿 관련 모듈들도 많이 나와있구요..
따라서 그냥 이런 것이 있다. 정도만 보고 넘어가셔도 될듯하네요.

format에 대해 더 알고 싶으시면
http://www.perlmania.or.kr:9000/trac/wiki/pung96/temp1
문서를 추천드립니다.

jekai의 이미지

제쪽 perl version을 보니깐 5.005_02 던데, 이 version 에서 이런 bug가 있는가봅니다.

aero 님 말씀듣고 혹시 version 탓인지 싶어, 5.8.8 version 으로 실행하니

문제가 사라졌습니다.

감사합니다. ^^