http://www.perlmonks.org?node_id=1039929


in reply to Re: Best Module Starter?
in thread Best Module Starter?

Thanks for the script. I changed it a bit. Here's my version. (Hopefully I didn't introduce a bug.)
#!/usr/bin/perl # # a simple module initializer using TemplateToolkit # original source: http://www.perlmonks.org/?node_id=649856 # - code rewritten a bit # - use Path::Class instead of File::Spec # - renamed 'Foo.pm' template file to Module.pm use Cwd; use Path::Class qw(file); my $template_dir = "~/.templates/modules/"; my $module = $ARGV[0] || prompt( "Module name> " ); (my $dist = $module) =~ s/::/-/g; # Foo::Bar::Baz -> Foo-Bar-Baz (my $base = $module) =~ s/.*:://; # Foo::Bar::Baz -> Baz my $file = $base . ".pm"; # Baz -> Baz.pm my $cwd = file(cwd(), $dist); # must contain ttree (provided through Template Toolkit) $ENV{PATH} = '/usr/local/bin:/usr/bin:/bin'; my @command = ( 'ttree', "-s $template_dir", "-d $cwd", "-define module='$module'", "-define module_file='$file'", "-define module_dist='$dist'", ); system join " ", @command; chdir $dist; rename file('lib', 'Module.pm'), file('lib', $file); sub prompt { print join "\n", @_; print "> "; my $line = <STDIN>; chomp $line; $line; }