PERL

Use of uninitialized value in substitution

고요한하늘... 2014. 2. 4. 13:09

1 my ($key, $val) = split(/\t/);
2 $val =~ s/\{\(//;
3 $val =~ s/\)\}//;
4 my @fields = split(/\),\(/, $val);

위와 같은 코드에서  아래와 같은 에러가 발견되었을 경우

Use of uninitialized value in substitution (s///) at

 

초기화 되지 않은  변수가 사용되었다는 경고 메세지인데

이유는 단순하다

1번 라인에 의해 값이 할당된 val에 아무런 것도 들어가지 않았을 경우

즉 split에 의해 리턴되는 값이 없을때 발생하는 경고 메세지이다.

회피하는 방법은 간단히

2,3,4 번행을

if( $val ) 문으로 감싸면 해결된다.

 

 

1 my ($key, $val) = split(/\t/);

2 if( $val )

3 {
4    $val =~ s/\{\(//;
5    $val =~ s/\)\}//;
6    my @fields = split(/\),\(/, $val);

7 } 

'PERL' 카테고리의 다른 글

[PERL] Wide character in print at   (0) 2013.01.16
[PERL] Unmatched ) in regex; marked by <-- HERE in  (0) 2013.01.15
PERL 기본함수 q, qq qw  (0) 2012.11.07
PERL MAP 사용법  (0) 2012.11.07
PERL 파일 열기 읽기 닫기 삭제  (0) 2012.11.07