++ed by:

9 PAUSE users

hitode 909
and 7 contributors


prt - Command line frontend of App::PRT


    $ prt <command> <args>
    $ prt <command> <args> <files>


prt is the command line frontend of App::PRT.


  • replace_token

    Replace foo token with bar.

        prt replace_token foo bar

    Replace foo token with bar but target statements must have bazz token.

        prt replace_token foo bar --in-statement bazz
  • rename_class

    Rename Foo class to Bar class.

        prt rename_class Foo Bar
  • rename_namespace

    Rename Foo and Foo::* classes to Bar and Bar::* classes.

        prt rename_namespace Foo Bar
  • delete_method

    Delete eat method from Food class.

        prt delete_method Food eat
  • move_class_method

    Move method method in Class class to another_method method in AnotherClass. Class's including packages are copied to AnotherClass.

        prt move_class_method 'Class#method' 'AnotherClass#another_method'
  • introduce_variables

    Print the variables in the source code. This command accepts input from STDIN.

        prt introduce_variables a.pl
        cat a.pl | prt introduce_variables
        pbpaste | prt introduce_variables
  • list_files

    List the files that App::PRT would process. This can be used, for example, to search the contents of the Perl sources in a project:

        grep "some_regex" `prt list_files`

    The -0 argument causes outputs to be separated by \0 instead of the default \n. For example:

        prt list_files -0 | xargs -0 grep "some_regex"


You can specify the target files to refactor. For example:

    prt replace_token foo bar lib/**/*.pm t/*.t # Refactor Perl modules in lib/ and test files in t/

NOTE: App::PRT does not glob (expand wildcards). In the above command, the shell must expand the **/*.pm and *.t.

Without target files, App::PRT detects source files in your project automatically. App::PRT looks for a cpanfile to detect the project's root directory. When executed in a git repository, all files in the repository are used.

    prt replace_token foo bar   # Refactor the project in current working directory


Copyright (C) 2014-2019 hitode909 and contributors.

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


hitode909 <hitode909@gmail.com>