package My::Base; use Moose; has filename => (is => "ro", isa => "Str", required => 1); has config => (is => "ro"); no Moose; package My::Derived; use Moose; extends "My::Base"; has "+config" => (lazy => 1, default => sub {my $self = shift; $self->filename . ".cfg"}); no Moose; package main; my $x=My::Derived->new(filename=>"/etc/myconfig"); print $x->config,"\n";' #### /etc/myconfig.cfg