I beg to differ. The docs are wrong in one way or the other. Consider the 5.6.1 release of the module. It has this to say:
The getopt() functions processes single-character switches with switch clustering. Pass one argument which is a string containing all switches that take an argument. For each switch found, sets $opt_x (where x is the switch name) to the value of the argument, or 1 if no argument. Switches which take an argument don't care whether there is a space between the switch and the argument.
the 5.8.x version has this to say
The getopt() function processes single-character switches with switch
clustering. Pass one argument which is a string containing all switches
that take an argument. For each switch found, sets $opt_x (where x is the
switch name) to the value of the argument if an argument is expected,
or 1 otherwise. Switches which take an argument don't care whether
there is a space between the switch and the argument.
So in 5.6.1 the documentation does not agree with the behaviour of the module at all. So somethings wrong. In 5.8.1 the documentation discusses a case that doesn't exist. There are no circumstances where there isnt a value expected for an argument being handled by getop(). So something is wrong with the documentation.
IMO the most reasonable behaviour is that which PhillHibbs was expecting which is the one that the docs in the 5.6.1 release specify, namely that the option should be set to 1.
However the more I read of Getopt::Std the less suitable I think it is for on trivial usage. Im glad I never wasted any of my real time using it, as I went straight for Getopt::Long.
---
demerphq
First they ignore you, then they laugh at you, then they fight you, then you win.
-- Gandhi
|