use Foo;
my ($bar) = @ARGV;
my $foo = Foo->new( bar => $bar );
####
package Foo;
use Moose;
has bar => (is => "ro", default => "whatever");
####
package Foo;
use Moose;
has a => (is => "rw");
sub BUILD {
my($this, $args)=@_;
$this->bar("whatever") unless defined $args->{bar};
}