또 다른 Perl Switch 문

3096 단어 switchperl
저는 Perl을 Python으로 변환하는 프로젝트를 진행하고 있습니다. :-( 변환에서 저는 switch 문 호출을 설명했습니다.

for (ref($thing)) {
    /ARRAY/ && do {
        some_array_thing($thing);
        last;
    };
    /LIST/ && do {
        some_list_thing($thing);
        last;
    };
    ## default;
    some_scalar_thing($thing);
}

for 문이 $_ 를 설정하는 방법을 설명한 후 "왜 그냥 $_ 을 설정하지 않습니까?"라는 질문을 받았습니다.

사실, 왜 안 되겠습니까? 여기에서 다음 코드를 사용할 수 있습니다. http://tpcg.io/KN9H82

use strict;
use warnings;

{
    local $_ = 'foo';
    /bar/ && do { print 'we got bar'; last };
    /foo/ && do { print 'we got foo'; last };
    /eek/ && do { print 'we got eek'; last };
    print 'we dropped through';
}


출력

we got foo


제 질문은 다음과 같습니다.
  • Perl의 switch 동의어에 대한 토론에서 왜 이것을 본 적이 없습니까?
  • 여기에 내재된 문제가 있습니까?
  • 좋은 웹페이지 즐겨찾기