NAME

    virtperl - Virtual perl environments

VERSION

    version 0.1

SYNOPSIS

    virtperl command syntax:

        virtperl <command> options [arguments]
        

    Commands:

        create      Create a new environment.
        new         Synonym for create.
        
        use         Change to the given environment in current shell.
        
        list        List the available environments.
        
        remove      Remove an environment.
        rm          Synonym for remove.
        
        mkcpanfile  Print a cpanfile of the dist installed in the current env.
        

    Example:

        virtperl create moose-based-project
        virtperl use moose-based-project
        cpanm install Moose
        ... hack hack hack...
        

SETUP

    Run the setup-virtperl script to initialize virtperl. It will output a
    shell command for sourcing virtperl's shell glue. It is recommended
    that you put that in your .profile or similar.

COMMANDS

 create

    Creates a new virtual perl environment. Takes a name as its only
    argument:

        virtperl create my-new-project
        

 use

    Switches the current shell to use the given environment:

        virtperl use my-other-project
        

 list

    List the environments that are currently setup.

        virtperl list
            my-new-project
          * my-other-project

 remove

    Removes an environment from disk.

        virtperl remove my-new-project

 mkcpanfile

    Outputs to STDOUT a cpanfile of all the distributions installed in the
    current environment. This feature only works if you are using cpanm to
    install modules - but you've been using cpanm to install your
    modules.... right?

        virtperl mkcpanfile

INTERNALS

    A base directory is created to store your environments in
    $HOME/.virtperl. When a environement is created, a basic directory tree
    for that environement is created with in the base dir.

    When an environment is active, then the PERL_VIRTPERL_CURRENT_ENV env
    variable is set to that name, anad PERL5OPT is set to include
    -MApp::VirtPerl::Setup. App::VirtPerl::Setup removes all the entries
    from @INC except for the core paths and the paths for the current
    environment.

    Because of this, perl -MDBI will not fail in a new virtual environment
    if DBI is installed in the global environment. However, perl -e 'use
    DBI;' will not pull in DBI from the global env.

    PERL_CPANM_OPT is also changed to when a virutual environment is active
    to make sure that modules are installed into the virtual env. This
    means you can just run cpanm whatever and it will DTRT. cpanm should be
    used for this, as it also installs metadata to allow the mkcpanfile
    feature to work.

AUTHORS

        Chris Reinhardt
        crein@cpan.org

COPYRIGHT

    This program is free software; you can redistribute it and/or modify it
    under the same terms as Perl itself.

    The full text of the license can be found in the LICENSE file included
    with this module.

SEE ALSO

    App::perlbrew, App::cpanminus, virtualenv, perl(1)