Wednesday, September 20, 2006
[Perl/펄 강좌] 배열(Array) 정의에서, qw 란?
qw 는, 공백으로 분리된 문자열 목록을 배열에 넣을 때 사용하는 것입니다. 꼭 필요한 것은 아니고, '귀차니스트'를 위해 존재하는 구문입니다. qw는, quoted by whitespace 즉, 공백(whitespace)문자로 따옴표를 대신한다는 의미입니다.
원래 문자열은 항상 따옴표로 둘러싸야 하는데, qw 는 따옴표 없이 입력할 수 있게 해주어서 편리합니다.
가령,
맹구
배용준
땡칠이
장동건
강수정
송창식
고은아
이런 문자열들을 배열에 정의하려면 원래
my @names = ("맹구", "배용준", "땡칠이", "장동건", "강수정", "송창식", "고은아");
이렇게 해주어야 하지만 따옴표와 쉼표들을 타이핑하기가 귀찮습니다.
qw 를 사용하면 다음과 같이 간단하게 배열 속에 넣을 수 있습니다.
my @names = qw/ 맹구 배용준 땡칠이 장동건 강수정 송창식 고은아 /;
따옴표와 콤마가 없어서 타이핑이 훨씬 쉽습니다.
또는, 슬래쉬(/) 대신에, 소괄호 등을 사용하여
my @names = qw( 맹구 배용준 땡칠이 장동건 강수정 송창식 고은아 );
my @names = qw< 맹구 배용준 땡칠이 장동건 강수정 송창식 고은아 >;
이렇게 해주어도 됩니다. qw 바로 뒤에 붙여서 요소들을 둘러쌀 문자(delimiter)는 사용자가 자유롭게 선택할 수 있습니다.
그런데 띄어쓰기가 된 요소는 이렇게 qw 로 정의할 수 없습니다.
"강수정 아나운서"라는 요소를
my @names = qw/ 강수정 아나운서 /;
이렇게 정의하면 "강수정"과 "아나운서" 2개의 요소가 되어 버립니다.
따라서 이때는 qw 를 쓰지 않고
my @names = ("강수정 아나운서", "맹구", "땡칠이");
이렇게 정식으로 정의해야 합니다.
▶▶ Perl/펄 문제 해결] Possible attempt to separate words with commas
원래 문자열은 항상 따옴표로 둘러싸야 하는데, qw 는 따옴표 없이 입력할 수 있게 해주어서 편리합니다.
가령,
맹구
배용준
땡칠이
장동건
강수정
송창식
고은아
이런 문자열들을 배열에 정의하려면 원래
my @names = ("맹구", "배용준", "땡칠이", "장동건", "강수정", "송창식", "고은아");
이렇게 해주어야 하지만 따옴표와 쉼표들을 타이핑하기가 귀찮습니다.
qw 를 사용하면 다음과 같이 간단하게 배열 속에 넣을 수 있습니다.
my @names = qw/ 맹구 배용준 땡칠이 장동건 강수정 송창식 고은아 /;
따옴표와 콤마가 없어서 타이핑이 훨씬 쉽습니다.
또는, 슬래쉬(/) 대신에, 소괄호 등을 사용하여
my @names = qw( 맹구 배용준 땡칠이 장동건 강수정 송창식 고은아 );
my @names = qw< 맹구 배용준 땡칠이 장동건 강수정 송창식 고은아 >;
이렇게 해주어도 됩니다. qw 바로 뒤에 붙여서 요소들을 둘러쌀 문자(delimiter)는 사용자가 자유롭게 선택할 수 있습니다.
그런데 띄어쓰기가 된 요소는 이렇게 qw 로 정의할 수 없습니다.
"강수정 아나운서"라는 요소를
my @names = qw/ 강수정 아나운서 /;
이렇게 정의하면 "강수정"과 "아나운서" 2개의 요소가 되어 버립니다.
따라서 이때는 qw 를 쓰지 않고
my @names = ("강수정 아나운서", "맹구", "땡칠이");
이렇게 정식으로 정의해야 합니다.
▶▶ Perl/펄 문제 해결] Possible attempt to separate words with commas
tag: perl
Perl | 펄
잘배우고 갑니다~
<< Home