컴퓨터 엑셀 워드 포토샵 구글어스 WINDOWS JAVASCRIPT JAVA C++

 
Wednesday, February 14, 2007

Perl/펄 문제 해결] Possible attempt to separate words with commas


use warnings; 프라그마를 사용하여, 경고를 출력하게 했을 때,

Possible attempt to separate words with commas at D:\Z\example.pl line 5

라는 경고가 나오는 경우가 있습니다. "콤마로써 단어(요소)들을 서로 구분하려 했을 수 있다"는 뜻입니다.

이것은 qw() 로 배열을 초기화할 때, 그 배열 요소들 사이에 쉼표(콤마)를 넣어주었다는 경고입니다.

qw() 로 배열을 정의할 때는 쉼표가 아닌 공백(스페이스)문자로만 요소들을 구분합니다.

따라서 쉼표를 제거하면 경고가 없어집니다.


아래 예제의 배열 @x 의 선언에 문제가 있습니다. 요소를 구분하느라 넣어준 쉼표가, 요소의 일부분으로서 출력됩니다.

만약 정말로 쉼표가 들어간 요소를 배열에 넣으려면 qw() 가 아닌, 아래 예제의 @o2 배열 선언처럼 정식으로 배열을 만들어야 합니다. qw() 는 공백이나 특수문자는 잘 처리하지 못하기 때문입니다.

#!/usr/bin/perl
use warnings;


  my @o = qw( 자장면 탕수육 짬뽕 우동 물만두 );
  my @x = qw( 자장면, 탕수육, 짬뽕, 우동, 물만두 );
  my @o2 = ( "자장면,", "탕수육,", "짬뽕,", "우동,", "물만두," );


  # 배열 @o 의 내용 출력 코드
  for (my $i = 0; $i <= $#o; $i++) {
    print "\$o[$i] = $o[$i]\n";
  }


  print "\n\n\n"; # 줄바꿈


  # 배열 @x 의 내용 출력 코드
  for (my $i = 0; $i <= $#x; $i++) {
    print "\$x[$i] = $x[$i]\n";
  }


  print "\n\n\n"; # 줄바꿈


  # 배열 @o2 의 내용 출력 코드
  for (my $i = 0; $i <= $#o2; $i++) {
    print "\$o2[$i] = $o2[$i]\n";
  }


실행 결과 화면:
1번째 출력 결과는, 정상
2번째 출력 결과는, 약간의 오류
3번째 출력 결과는, 정말로 쉼표가 포함된 요소를 정상적으로 출력한 것

D:\Z>example.pl
Possible attempt to separate words with commas at D:\Z\example.pl line 6.
$o[0] = 자장면
$o[1] = 탕수육
$o[2] = 짬뽕
$o[3] = 우동
$o[4] = 물만두



$x[0] = 자장면,
$x[1] = 탕수육,
$x[2] = 짬뽕,
$x[3] = 우동,
$x[4] = 물만두



$o2[0] = 자장면,
$o2[1] = 탕수육,
$o2[2] = 짬뽕,
$o2[3] = 우동,
$o2[4] = 물만두,

D:\Z>



▶▶ [Perl/펄 강좌] 배열(Array) 정의에서, qw 란?

0 Comments:

Post a Comment

<< Home RSS 2.0 feed

구글 Google 에서 제공하는 무료 블로그 서비스인 블로거 Blogger 의 인터넷 주소는 www.blogger.com 입니다. Blogger 에 블로그를 만들면, blogspot.com 이라는 주소에 블로그가 생성됩니다.
블로그를 직접 방문하지 않고도 최신 게시물을 구독하려면 RSS 2.0 feed 주소를 리더기에 등록하시면 됩니다.
Previous Posts
Monthly Archives
Top