C:\test>type t-Moose.pl #! perl -slw use strict; our @c = 12345; my $o = test->new( x => \$c[ 0 ] ); $o->doit; { package test; use Moose; has x => ( is => 'rw' ); sub doit { my( $self ) = @_; print $self->{ x }; print ${ $self->{ x } }; } } C:\test>perl t-Moose.pl Use of uninitialized value in print at t-Moose.pl line 14. Can't use an undefined value as a SCALAR reference at t-Moose.pl line 15.