Slash Boxes
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
More | Login | Reply
Loading... please wait.
  • What's the overall steps needs to make a customized version of Strawberry? Just subclass it's class, and add dists to the list?

    I'd like to have a go at replacing my CatInABox zipped dist folder with a real Perl::Dist that I can rebuild and keep updated that contains a complete running Catalyst install with all the trimmings.
    • I'm working on documentation for Perl::Dist as we speak, and it will include a cookbook example of making a sub-class (yes, a subclass is all you need).

      But completely off the top of my head (and probably a bit buggy) it would look something like this.

      package Perl::Dist::CatInABox;

      use strict;
      use base 'Perl::Dist::Strawberry';

      sub app_name { 'Catalyst In a Box' }
      sub app_ver_name { 'Catalyst In a Box December 2007' }
      sub app_publisher { 'Catalyst' }
      sub app_publisher_url { '' }
      sub app_id { 'catinabox' }
      sub output_base_filename { 'catinabox-5.10.0-200712' }

      # Apply some default paths
      sub new {
                      image_dir => 'C:\\catinabox',
                      temp_dir => 'C:\\tmp\\cat',

      # Leave the basic install process the same, but add extra modules
      sub install_perl_modules {
            my $self = shift;

            # Lets just add Catalyst::Devel for now
                    name => 'Catalyst::Devel',

            return 1;

      # Add a link to the Cat website
      sub install_win32_extras {
              my $self = shift;

                      name => 'Catalyst Website',
                      url => '',

              return 1;


      On top of the new release I'm doing shortly, that should give you a basic Cat In A Box installer.