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) | 2014.06.20 |
---|---|
[PERL] Unmatched ) in regex; marked by <-- HERE in (0) | 2014.06.20 |
PERL 기본함수 q, qq qw (0) | 2014.06.20 |
PERL MAP 사용법 (0) | 2014.06.20 |
PERL 파일 열기 읽기 닫기 삭제 (0) | 2014.06.20 |