2011-04-04 2 views
5

Есть ли у Perl оператор для выхода из функции или для функции last?«последний» оператор для функций?

sub f { 

    # some code here 

    if ($v == 10) { 
    # goto end of function/exit function/last 
    } 

    # some code here 
} 

goto может сделать трюк, но швы не так-то?

+0

Как и во всех языках программирования - 'return;' выйдет из функций –

ответ

16

Используйте return; для выхода из подпрограммы.

0

Ну ... можно использовать goto идти до конца подпрограммы:

sub f { 

    # some code here 

    if ($v == 10) { 
    goto END; 
    } 

    # some code here 
    END: 
} 

Или использовать last для перехода к концу подпрограммы (если добавить блок) :

sub f { 
    END: { 

    # some code here 

    if ($v == 10) { 
     last END; 
    } 

    # some code here 

    } # END 
} 

То, что вы действительно хотите использовать return

sub f { 

    # some code here 

    if ($v == 10) { 
    return; 
    } 

    # some code here 

} 

Если вы хотите узнать, какие функции доступны, я бы заказал the perlfunc manpage.

Смежные вопросы