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

 
Previous Post Java,자바] 그래픽 파일 뷰어 만들기; JPG GIF PNG Image File Vie...자바,Java] 유닉스 타임, 유닉스 시간 구하기; UNIX Time, POSIX Time...구글 휴대폰용 모바일 검색 사이트 주소, Google Mobile Search도스 고전 게임 에러 해결] VESA support not detected리눅스 출력 결과, 화면에 한 페이지씩 스크롤, LINUX UNIX Paging리눅스/유닉스 실행파일 디렉토리, 명령어/바이너리 폴더 위치; LINUX UNIX bin자바 클래스 파일 디스어셈블러/역어셈블;Java Class File Disassembler...C언어] 2차원 배열 만들기, 초기화, 출력 (배열의 배열); Two Dimensional...리눅스/유닉스] 하드 남은 용량; 디스크 사이즈 보는 명령어; LINUX UNIX Disk...Perl,펄] 매개변수(인수) 받아 배열 만들기: Arg To Array

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

Friday, November 03, 2006

배열의 요소나, 어떤 변수가 초기화되어 있는지 아닌지 실시간으로 알아내야 할 때가 있습니다. 이때 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! 초기화되어 있군요"라는 값이 나옵니다.

☞ Perl(펄)

0 Comments:

Post a Comment

<< Home RSS 2.0 feed

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