On Sun, May 30, 2010 at 7:18 PM, Yuval Kogman <[email protected]> wrote:
>
> In the context of Want it just checks if the retop operation involves a
> boolean operator such that SvTRUE of the return value is the only thing ever
> used.
>     my $foo = foo();
>     if ( $foo ) { # not boolean context
>
>     if ( foo() ) { # boolean context

So I wanted to show how
if ( $foo ) {
is a boolean context and started to write an example:

use strict;
use warnings;

tie my $z, 'X', 1;
print $z;

package X;
use strict;
use warnings;
use Want;

sub TIESCALAR {
        my ($class, $self) = @_;
        return bless \$self, $class,
}

sub FETCH {
        my ($self) = @_;
        print "ok" if want('BOOL');
        return $$self;
}


the response was surprising:

Segmentation fault

using  v5.10.1 that comes with Ubuntu 10.4 and Want 0.18

the call to 'want' generates this.

Can someone with a newer version of perl confirm this?

Gabor
_______________________________________________
Perl mailing list
[email protected]
http://mail.perl.org.il/mailman/listinfo/perl

Reply via email to