<?xml version="1.0" encoding="windows-1252"?>
<node id="997116" title="Re^3: Range in Getopt" created="2012-10-03 14:34:11" updated="2012-10-03 14:34:11">
<type id="11">
note</type>
<author id="625435">
james2vegas</author>
<data>
<field name="doctext">
That is because while the d option's value is required, the d option itself is not, check the definedness of $_debug afterwards: &lt;br&gt;&lt;br&gt;
&lt;code&gt;
use Getopt::Long;
my $_debug;
GetOptions('d=i' =&gt; sub {
        $_debug = $_[1];
        ($_debug &gt; 0 &amp;&amp; $_debug &lt;= 4) or die "Invalid Debug Level ($_debug)"
    } ) or exit 1;

die "Debug Level is required" unless defined $_debug;
warn "Debug Level is $_debug\n";

&lt;/code&gt;
&lt;br&gt;
or set a default value before GetOptions:
&lt;br&gt;&lt;br&gt;&lt;code&gt;
use Getopt::Long;
my $_debug = 0;
GetOptions('d=i' =&gt; sub {
        $_debug = $_[1];
        ($_debug &gt; 0 &amp;&amp; $_debug &lt;= 4) or die "Invalid Debug Level ($_debug)"
    } ) or exit 1;

warn "Debug Level is $_debug\n";
&lt;/code&gt;</field>
<field name="root_node">
996976</field>
<field name="parent_node">
997054</field>
</data>
</node>
