#!/usr/bin/perl use strict; use warnings; use Template; use File::Find::Rule; use File::Path qw(make_path); use File::Basename qw (fileparse); use File::Copy::Recursive qw(fcopy); my $out_dir = "out/"; #find all files my @files = File::Find::Rule->file() ->in('.'); #initialize template toolkit my $template = Template->new; foreach my $file (@files) { next if $file =~ /^$out_dir/; next if $file =~ /$0$/; if ($file =~ /\.tt2$/) { my $output; $template->process($file, undef, \$output); my ($name,$path,$suffix) = fileparse($file,qw (.tt2)); open (my $fh, '>', "$out_dir/$path/$name.html") or die "$!"; print $fh $output; close($fh); } else { fcopy ($file, "$out_dir/$file"); } }