in reply to 1 but false

You're right, there isn't a "1 but false" ordinarily. You can make one though:
my $one_but_false = OneButFalse->new(); print "value = $one_but_false\n"; print "truth = ", ($one_but_false ? "true\n" : "false\n"); package OneButFalse; use overload '0+' => sub {1}; use overload 'bool' => sub {0}; use overload fallback => 1; sub new { my ($pkg) = @_; bless {}, $pkg; }
See What is truth? for more info.