2009-10-28 2 views

답변

17

아니요. 정확하게 설명하는 목적에 부합하며, 너무 익숙해 진 언어의 멋진 기능이라고 생각합니다.

한편, 레이블 사용을 숙고 할 때마다 코드에 약간의 리팩터링이 필요한지 궁금해합니다.

+1

my $i = 10; OUTER: while(1){ # ... while(1){ # ... last OUTER unless --$i; } } 
, 나는 코드가 레이블을 사용하여 명확하게 생각합니다. 더 이상 코드를 사용하지 않도록 코드를 다시 작성하면 일반적으로 여러 줄의 추가 코드가 생성됩니다. – Geo

+2

가끔은 그렇지 가끔은 그렇지 않습니다. 나는 항상 읽고 이해하기 쉬운 코드를 찾는다. 때로는 레이블을 사용하는 코드입니다. – innaM

+2

Perl 모범 사례는 레이블을 선호합니다. 나는 모든 PBP에 동의하지 않지만 이것이 좋은 충고 중 하나라고 생각합니다. 아무것도없는 경우 문서로 사용됩니다. – hobbs

12

next, lastredo의 레이블을 사용하는 것이 좋지만 코드 구조가 가장 적합한 지 고려해야합니다. 제 경험으로는이 연산자를 둘러싼 루프 이외의 다른 연산자에 사용할 필요가 거의 없습니다 (즉, 레이블을 사용할 필요가 없음).

goto LABEL을 사용하는 것은 강력하지 않습니다.

8

보통 goto LABEL을 사용할 이유가 없습니다. 예를 들어

:

my $i = 10; 
{ 
    # ... 
    redo if --$i; 
} 

내가 레이블을 사용하는 생각할 수있는 유일한 이유는, 여러 루프의 탈옥하는 것입니다, 또는 :

my $i = 10; 
Label: 
# ... 
goto Label if --$i; 

이 더 잘 기록 바깥 쪽 루프를 계속합니다. 대부분의 경우

my $i = 10; 
OUTER: { 
    # ... 
    { 
    # ... 
    redo OUTER if --$i; 
    } 
}