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 }