"초기화되지 않은 값"에 대한 경고를받지 않도록 변수 (예 : $ 3)가 있는지 확인하는 방법은 무엇입니까?

라파엘 라 파트 파나

피트와 인치의 크기를 인치의 너비와 인치의 높이로 구분하는 열로 변환하는 .csv 파일에서 스크립트를 실행하려고합니다.

Strict 모드를 사용하지 않을 때는 잘 작동하지만가 use warnings;설정 되면 경고 메시지를 반환합니다 .

내 문제는 여기에서 발생합니다.

if ($data[$index_num] =~ /(\d+)'( (\d+)'')? x (\d+)'( (\d+)'')?/) {

    my $width = $1*12+$3;
    my $height = $4*12+$6;

    ...
}

때로는 크기가 5 'x 8'일 수 있기 때문에 특수 변수 $ 3 및 $ 6이 존재하지 않습니다.

가능한 모든 크기 형식은 다음과 같습니다.

  1. 5 '1' 'x 6'7 ''(모두 한 자리 숫자)
  2. 10 '1' 'x 5'10 ''(단일 및 두 자리 조합)
  3. 5 'x 8'(인치 없음)
  4. 4 '6' 'x 7'(인치 및 인치 없음의 조합)

내가받는 경고는 다음과 같습니다.

script.pl 47 행, 567 행에 (+)와 함께 초기화되지 않은 값 $ 6 사용.

이것은 너비 또는 높이에서 인치가 누락 된 경우 3 또는 4에서 발생합니다.

사용하기 전에 $ 3 또는 $ 6가 있는지 어떻게 확인할 수 있습니까?

user4035

defined기능 을 사용할 수 있습니다 .

my $height;
if(defined($6))
{
    $height = $4*12+$6;
}
else
{
    $height = $4*12;
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관