BrowserUk has asked for the wisdom of the Perl Monks concerning the following question:
What does this error mean?
Why does it go away if I remove the :shared attribute from %things?
Does it constitute a bug that should be reported?
#! perl -slw use strict; package test; use threads; use threads::shared; my %things : shared; sub new { my( $class, $thing ) = @_; my $self = bless \$class, $class; $things{ $self } = $thing; return $self; } sub thing : lvalue { $things{ $_[ 0 ] }; } sub DESTROY { delete $things{ $_[ 0 ] }; } return 1 if caller; package main; my $test = test->new( '12345' ); print $test->thing; $test->thing = 98765; ## Line 32 print $test->thing; undef $test; __END__ P:\test>perl test.pm 12345 Can't return a temporary from lvalue subroutine at test.pm line 32.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Error: "Can't return a temporary from lvalue subroutine"?
by dave_the_m (Monsignor) on Jul 04, 2004 at 19:00 UTC | |
by BrowserUk (Patriarch) on Jul 04, 2004 at 19:22 UTC |