in reply to Flip Flop IV

"TRUE" and "FALSE" are meaningless to Perl, unless you give them meaning. Watch:
$debug = bungee; if ($debug eq bungee) { $debug = SPELUNK; } else { $debug = bungee; }
See? All I did was change "TRUE" to "SPELUNK" and "FALSE" to "bungee", and the code works as before.

There is NO Perl literature that says TRUE is true and FALSE is false; if there is, the author deserves to be spat upon by an angry camel. Use true/false values that everyone else (who knows) does.

if ($debug) { # $debug is true } else { # $debug is false } $debug = 1; $debug = !$debug; # flip-flop
Or, make your own boolean class.
package boolean; use overload ( '+0' => sub { $_[0][0] }, fallback => 1, ); sub new { bless [ $_[1] ? 1 : 0 ], $_[0] } sub flip { $_[0][0] = 1 - $_[0][0] }
And then use it
use boolean; $debug = boolean->new(1); print "hi\n" if $debug; $debug->flip; print "bye\n" if $debug;


japhy -- Perl and Regex Hacker