> + (my $generated = $File::Find::name) =~ s/\.in$//;
> + push @need_update, $generated
> + unless -e $generated && -M $generated < -M $File::Find::name;
> - if (my $extra_conf = $self->generate_extra_conf) {
> - for my $file (@$extra_conf) {
> - push @reasons, "$file.in is newer than $file"
> - if -e $file && -M "$file.in" < -M $file;
> - }
you flipped the logic here. it needs to be
unless -e $generated && -M $generated > -M $File::Find::name
which is equivalent to
if (! -e extra.conf || ! (extra.conf > extra.conf.in))
right now it reconfigures all the time:
[warning] forcing re-configuration:
[warning] - t/conf/extra.conf.in is newer than t/conf/extra.conf.
-rw-rw-r-- 1 geoff geoff 1283 Feb 19 09:42 extra.conf
-rw-rw-r-- 1 geoff geoff 353 Feb 19 09:36 extra.conf.in
--Geoff