mwultong Blog ... 프로그래밍 / 계산기

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

 
Friday, November 03, 2006

펄,Perl] defined 함수 사용 예제; 배열/변수 초기화 여부 확인 법


배열의 요소나, 어떤 변수가 초기화되어 있는지 아닌지 실시간으로 알아내야 할 때가 있습니다. 이때 defined 함수를 사용하면 됩니다. 초기화되어 있다면 참(true), 그렇지 않다면 거짓(false)의 논리값을 반환합니다.

즉, 다음과 같습니다:


* 변수의 값이나 배열의 요소가, 초기화되어 있는지 아닌지 판단

* 배열의 요소 개수를 넘어서는 첨자(인덱스)를 지정했는지 판단



PERL: defined 함수 사용 예제


#!/usr/bin/perl
use strict; use warnings;

  my @a = qw/ 123 3.14 666 /;

  print $a[2], "\n";  # 666
  print $a[3], "\n";  # 666 다음 숫자 없기에 경고: Use of uninitialized value in print at D:\Z\0.pl line 7.


=pod
  그러나 아래의 경우는 경고 없음, 왜냐하면 defined 를 사용하여,
  $a[3] 의 값이 초기화되어 있는 경우 즉 존재하는 경우에만
  출력하므로
=cut

  if (defined $a[3]) {
    print $a[3];
  }

  # 또는 이렇게 간단히 축약하며
  print $a[3] if defined $a[3];



#################################
## 다른 예제

  my $s;  # 변수를 선언만 했지, 초기화하지 않았음

  if (defined $s) {
    print "OK! 초기화되어 있군요";
  } else {
    print "초기화되어 있지 않군요!\n";
  }

  # 결과: 초기화되어 있지 않군요!



if (!defined $s) {...
이렇게 앞에 느낌표를 하나 붙이면 defined 의 논리값을 반전시켜서 정반대의 결과를 낼 수 있습니다. 즉 "OK! 초기화되어 있군요"라는 값이 나옵니다.




tag: perl
Perl | 펄

0 Comments:

<< Home RSS 2.0 feed

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