in reply to Re: Help with cause of "Modification of a read-only value attempted at ..."
in thread Help with cause of "Modification of a read-only value attempted at ..."
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' );
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^3: Help with cause of "Modification of a read-only value attempted at ..."
by Corion (Patriarch) on Sep 28, 2010 at 15:29 UTC |
In Section
Seekers of Perl Wisdom