Что делает этот фрагмент кода на Perl? - PullRequest
3 голосов
/ 27 апреля 2011

В приведенном ниже фрагменте кода я понимаю, что один из параметров "none", "monitor" или "gdb" настроен на отладку, но я просто не понимаю синтаксисЯ только начал изучать Perl.Может кто-нибудь объяснить мне, как работает этот синтаксис?

GetOptions ("debug=s" => sub { set_debug ($_[1]) },
            "no-debug" => sub { set_debug ("none") },
            "monitor" => sub { set_debug ("monitor") },
            "gdb" => sub { set_debug ("gdb") }
           );

Спасибо.

1 Ответ

7 голосов
/ 27 апреля 2011

Во-первых, "debug = s" это назначение по умолчанию?

Соглашения об именах, используемые для ключей в хэше, переданном в GetOptions, объясняются в документации для GetOptions .

Во-вторых, используйте ключевое слово "sub", я просто думаю, что оно использовалось для вызова функции set_debug?

Нет. Он определяет подпрограмму и передает ее в качестве значения любой клавише слева от жирной запятой. Он вызывается при установке дополнения (это также определяется в документах GetOptions).

Затем, наконец, сравниваются и устанавливаются «no-debug», «monitor» и «gdb».

Если указан соответствующий аргумент командной строки, подпрограмма выполняется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...