这段perl代码有什么作用?

时间:2011-04-27 09:12:46

标签: perl

在下面显示的一段代码中,我理解“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") }
           );

感谢。

1 个答案:

答案 0 :(得分:7)

  

首先,“debug = s”是默认分配吗?

documentation for GetOptions中解释了传递给GetOptions的哈希中键的命名约定。

  

其次,使用“sub”关键字,我只是猜测它用于调用set_debug函数?

没有。它定义了一个子例程,并将其作为值传递给胖子逗号左侧的任何键。设置扩充时调用它(这也在GetOptions文档中定义)。

  

然后最后如何比较和设置“no-debug”,“monitor”和“gdb”。

当提供匹配的命令行参数时,执行子例程。