package Test;
use Moose;
my $prepend = '/some_string/';
has 'fname' => (is => 'rw',
isa => 'Str');
has 'appended' => ( is => 'rw',
isa => 'Str',
# lazy => 1,
#builder => 'set_appended'
);
1;
sub BUILDARGS {
my $class = shift;
my %args = ref $_[0] ? %{$_[0]} : @_;
$args{appended} = $prepend . $args{appended} if exists $args{appended};
return \%args;
}
sub set_appended {
my $self = shift;
my $value = $self->appended;
return $prepend . $value;
}
####
use 5.010;
use strict;
use warnings;
use lib ".";
use Test;
my $t = new Test( fname => "fred",
appended => "this_is_appended_string");
say $t->fname;
say $t->appended;
$t->appended ('another_string');
say $t->appended;
####
fred
/some_string/this_is_appended_string
another_string