[Israel.pm] List of all contexts in Perl

Gabor Szabo szabgab at gmail.com
Sun May 30 12:36:42 PDT 2010


On Sun, May 30, 2010 at 7:18 PM, Yuval Kogman <nothingmuch at woobling.org> 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


More information about the Perl mailing list