http://www.perlmonks.org?node_id=1030757


in reply to Re^2: PERL issues a "lock can only be used on shared values" when locking a shared hash
in thread PERL issues a "lock can only be used on shared values" when locking a shared hash

.... Seriously.

so you've read threads::shared? Cause it gives examples

You cannot lock the individual elements of a container variable:
my %hash :shared; $hash{'foo'} = 'bar'; #lock($hash{'foo'}); # Error lock(%hash); # Works
lock follows references exactly one level:
my %hash :shared; my $ref = \%hash; lock($ref); # This is equivalent to lock(%hash)

lock %{ $uber_hashRef{'%y'} };

is like my $ref = $uber_hashRef{'%y'}; lock $ref;

is like my $ref = $uber_hashRef{'%y'}; lock %$ref;

  • Comment on Re^3: PERL issues a "lock can only be used on shared values" when locking a shared hash
  • Select or Download Code