has FileName => ( is => 'ro', isa => 'Str', lazy => 1, builder => '_build_filename', ); sub _build_filename { my $self = shift; # build logic here return $filename; }