Module::Rename - Utility functions for renaming a module distribution


Module-Rename documentation  | view source Contained in the Module-Rename distribution.

Index


NAME

Top

Module::Rename - Utility functions for renaming a module distribution

SYNOPSIS

Top

    ########
    # Shell:
    ########
    $ module-rename Old::Name New::Name Old-Name-Distro

    #######
    # Perl:
    #######
    use Module::Rename;

    my $ren = Module::Rename->new(
        name_old           => "Old::Name",
        name_new           => "New::Name",
    );

    $ren->find_and_rename($start_dir);

DESCRIPTION

Top

Have you ever created a module distribution, only to realize later that the module hierarchary needed to be changed? All of a sudden, Cool::Frobnicator didn't sound cool anymore, but needed to be Util::Frobnicator instead?

Going through a module's distribution, changing all package names, variable names, and move the directories around can be a tedious task. Module::Rename comes with a script module-rename which takes care of all this:

    $ ls
    Cool-Frobnicator-0.01/

    $ module-rename Cool::Frobnicator Util::Frobnicator Cool-Frobnicator-0.01
    Cool-Frobnicator-0.01/lib/Cool is empty and can go away.

Done. The directory hierarchy has changed:

    $ ls -R
    Util-Frobnicator-0.01/
    ...
    Util-Frobnicator-0.01/lib/Util/Frobnicator.pm

... and so has the content of all files:

    $ grep "package" Util-Frobnicator-0.01/lib/Util/Frobnicator.pm
    package Util::Frobnicator;

Things to Keep in Mind

API

Top

my $renamer = Module::Rename->new(...)

The renamer's constructor takes the following parameters:

name_old

Old module name.

name_new

New module name.

dir_exclude

Reference to an array with directories to exclude from traversing. Preset to

    dir_exclude => ['blib']

but can be overridden.

dir_ignore

Reference to an array with entries to be ignored in 'empty' directories. Even with these entries being present, a directory will be considered empty and swept away.

Preset to

        dir_ignore => ['CVS'],

but can be overridden.

wipe_empty_subdirs

If set to a true value, 'empty' (see above) subdirectories will be deleted after all renaming and restructuring is done. Defaults to true.

$renamer->find_and_rename($start_dir)

Start searching and replacing in $start_dir and recurse into it.

LEGALESE

Top

Copyright 2005 by Mike Schilli, all rights reserved. This program is free software, you can redistribute it and/or modify it under the same terms as Perl itself.

AUTHOR

Top

2005, Mike Schilli <cpan@perlmeister.com>


Module-Rename documentation  | view source Contained in the Module-Rename distribution.