BEGIN { package MY; use File::Spec::Functions qw( catdir catfile ); sub init_PM { my $self = shift; $self->SUPER::init_PM(@_); my @path = qw( ... ); my $src_base = catdir('lib', @path); my $dst_base = join('$(DIRFILESEP)', '$(INST_LIB)', @path); for (...) { my $src = catfile( $src_base, "$_.pm"); my $dst = join('$(DIRFILESEP)', $dst_base, "$_.pm"); $self->{PM}{$src} = $dst; } } }