package Service; use strict; use warnings; use Module::Find; sub new { my $class = shift; my $self = bless { data => undef, service => undef, }, $class; $self->{data} = shift; my $service = $self->{data}; my @found = useall 'Service'; for my $plugin (@found) { if ($plugin =~ /::\Q$service\E$/i) { $self->{service} = $plugin; } last if defined $self->{service}; } return $self; } sub populate { my $self = shift; $self->{template} =~ s/[data]/$self->{data}/msi; # $self->{service}->{template} =~ s/[data]/$self->{data}/msi; } 1;