$self->debug_level( 4 );
print "Original: ", \$self->debug_level, " Value: ", $self->debug_level, "\n";
my $obj = Something->new( {
'debug_level' => \$self->debug_level,
} );
print "Reference: ", $obj->debug_level, " Value: ", ${$obj->debug_level}, "\n";
$self->debug_level( 0 );
print "After change:\n";
print "Original: ", \$self->debug_level, " Value: ", $self->debug_level, "\n";
print "Reference: ", $obj->debug_level, " Value: ", ${$obj->debug_level}, "\n";
####
Original: SCALAR(0xd463da0) Value: 4
Reference: SCALAR(0xd468640) Value: 4
After change:
Original: SCALAR(0xd463da0) Value: 0
Reference: SCALAR(0xd468640) Value: 4
####
has 'debug_level' => (
traits => [qw(Getopt)],
is => 'rw',
isa => 'Int',
default => 0,
cmd_aliases => 'd',
documentation => 'Debug mode: 0-4; Default: 0;'
);
####
has 'debug_level' => (
is => 'rw',
isa => 'ScalarRef[Int]',
);
####
my $obj = Something->new( {
# Before:
#'debug_level' => \$self->debug_level,
# Now:
'debug_level' => \$self->{'debug_level'},
} );