my $data = undef; my $object_or_undef = bless( $data, 'My::Class' ); #### package My::Class { sub new { my ( $class, $data ) = @_; return undef unless ref $data eq 'HASH'; bless $data => $class; } } my $data = undef; my $object_or_undef = My::Class->new( $data );