Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?
 
PerlMonks  

Re: Help with cause of "Modification of a read-only value attempted at ..."

by JavaFan (Canon)
on Sep 28, 2010 at 14:23 UTC ( [id://862430]=note: print w/replies, xml ) Need Help??


in reply to Help with cause of "Modification of a read-only value attempted at ..."

I cannot reproduce that. Could you gives us a small, stand-alone program that gives this error message?

Replies are listed 'Best First'.
Re^2: Help with cause of "Modification of a read-only value attempted at ..."
by shriken (Priest) on Sep 28, 2010 at 15:23 UTC

    Trimming down, even before I have a small case that shows the error I have something else wrong. Here're two files that give me different results on 5.8.8 versus 5.10. I think I've already done something wrong at this level of simplicity that I should figure out before building the example up farther.

    use strict; use warnings; use configthing qw(); our configthing $cfg = new configthing; use Data::Dumper; print Dumper $cfg;

    Then for "configthing.pm"...

    package configthing; use strict; use warnings; use fields qw( a b c d ); our %DEFAULTS = ( b => 'default for b', c => 'default for c' ); 1; sub new { my $this = shift; unless (ref $this) { $this = fields::new($this); } our %FIELDS; foreach my $k ( keys(%FIELDS) ) { $this->{$k} = '' unless defined($this->{$k}); } $this->{a} = 'set at initialization'; foreach my $k ( keys(%DEFAULTS) ) { $this->{$k} = $DEFAULTS{$k}; } return $this; }

    With 5.8.8 I get

    $VAR1 = bless( [ bless( { 'c' => 3, 'a' => 1, 'b' => 2, 'd' => 4 }, 'pseudohash' ), 'set at initialization', 'default for b', 'default for c', '' ], 'configthing' );

    And 5.10.1 gives me:

    $VAR1 = bless( { 'c' => 'default for c', 'a' => 'set at initialization', 'b' => 'default for b', 'd' => '' }, 'configthing' );

      This is completely to be expected in a change from 5.8 to 5.10 because pseudohashes do not exist anymore in 5.10. The implementation of fields was changed to shield you from this other change I believe.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://862430]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others cooling their heels in the Monastery: (7)
As of 2024-03-19 02:29 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found