在下面显示的一段代码中,我理解“none”,“monitor”或“gdb”中的一个设置为debug,但我无法理解语法。我刚刚开始学习Perl。任何人都可以解释一下这种语法是如何工作的?
GetOptions ("debug=s" => sub { set_debug ($_[1]) },
"no-debug" => sub { set_debug ("none") },
"monitor" => sub { set_debug ("monitor") },
"gdb" => sub { set_debug ("gdb") }
);
感谢。
答案 0 :(得分:7)
首先,“debug = s”是默认分配吗?
documentation for GetOptions中解释了传递给GetOptions的哈希中键的命名约定。
其次,使用“sub”关键字,我只是猜测它用于调用set_debug函数?
没有。它定义了一个子例程,并将其作为值传递给胖子逗号左侧的任何键。设置扩充时调用它(这也在GetOptions文档中定义)。
然后最后如何比较和设置“no-debug”,“monitor”和“gdb”。
当提供匹配的命令行参数时,执行子例程。