App-perlimports

 view release on metacpan or  search on metacpan

META.json  view on Meta::CPAN

            "Pod::Usage" : "0",
            "Ref::Util" : "0",
            "Scalar::Util" : "0",
            "Sereal::Decoder" : "0",
            "Sereal::Encoder" : "0",
            "Sub::HandlesVia" : "0",
            "Symbol::Get" : "0.10",
            "TOML::Tiny" : "0.16",
            "Text::Diff" : "0",
            "Text::SimpleTable::AutoWidth" : "0",
            "Try::Tiny" : "0",
            "Types::Standard" : "0",
            "feature" : "0",
            "perl" : "v5.18.0",
            "strict" : "0",
            "utf8" : "0",
            "warnings" : "0"
         }
      },
      "test" : {
         "recommends" : {

META.yml  view on Meta::CPAN

  Pod::Usage: '0'
  Ref::Util: '0'
  Scalar::Util: '0'
  Sereal::Decoder: '0'
  Sereal::Encoder: '0'
  Sub::HandlesVia: '0'
  Symbol::Get: '0.10'
  TOML::Tiny: '0.16'
  Text::Diff: '0'
  Text::SimpleTable::AutoWidth: '0'
  Try::Tiny: '0'
  Types::Standard: '0'
  feature: '0'
  perl: v5.18.0
  strict: '0'
  utf8: '0'
  warnings: '0'
resources:
  bugtracker: https://github.com/perl-ide/App-perlimports/issues
  homepage: https://github.com/perl-ide/App-perlimports
  repository: https://github.com/perl-ide/App-perlimports.git

Makefile.PL  view on Meta::CPAN

    "Pod::Usage" => 0,
    "Ref::Util" => 0,
    "Scalar::Util" => 0,
    "Sereal::Decoder" => 0,
    "Sereal::Encoder" => 0,
    "Sub::HandlesVia" => 0,
    "Symbol::Get" => "0.10",
    "TOML::Tiny" => "0.16",
    "Text::Diff" => 0,
    "Text::SimpleTable::AutoWidth" => 0,
    "Try::Tiny" => 0,
    "Types::Standard" => 0,
    "feature" => 0,
    "strict" => 0,
    "utf8" => 0,
    "warnings" => 0
  },
  "TEST_REQUIRES" => {
    "ExtUtils::MakeMaker" => 0,
    "File::Spec" => 0,
    "File::pushd" => 0,

Makefile.PL  view on Meta::CPAN

  "TOML::Tiny" => "0.16",
  "Test::Differences" => 0,
  "Test::Fatal" => 0,
  "Test::More" => 0,
  "Test::Needs" => 0,
  "Test::RequiresInternet" => 0,
  "Test::Script" => "1.29",
  "Test::Warnings" => 0,
  "Text::Diff" => 0,
  "Text::SimpleTable::AutoWidth" => 0,
  "Try::Tiny" => 0,
  "Types::Standard" => 0,
  "feature" => 0,
  "lib" => 0,
  "strict" => 0,
  "utf8" => 0,
  "warnings" => 0
);


unless ( eval { ExtUtils::MakeMaker->VERSION(6.63_03) } ) {

cpanfile  view on Meta::CPAN

requires "Pod::Usage" => "0";
requires "Ref::Util" => "0";
requires "Scalar::Util" => "0";
requires "Sereal::Decoder" => "0";
requires "Sereal::Encoder" => "0";
requires "Sub::HandlesVia" => "0";
requires "Symbol::Get" => "0.10";
requires "TOML::Tiny" => "0.16";
requires "Text::Diff" => "0";
requires "Text::SimpleTable::AutoWidth" => "0";
requires "Try::Tiny" => "0";
requires "Types::Standard" => "0";
requires "feature" => "0";
requires "perl" => "v5.18.0";
requires "strict" => "0";
requires "utf8" => "0";
requires "warnings" => "0";

on 'test' => sub {
  requires "ExtUtils::MakeMaker" => "0";
  requires "File::Spec" => "0";

lib/App/perlimports/CLI.pm  view on Meta::CPAN


use App::perlimports           ();
use App::perlimports::Config   ();
use App::perlimports::Document ();
use Capture::Tiny              qw( capture_stdout );
use Getopt::Long::Descriptive  qw( describe_options );
use List::Util                 qw( uniq );
use Log::Dispatch              ();
use Path::Iterator::Rule       ();
use Path::Tiny                 qw( path );
use Try::Tiny                  qw( catch try );
use Types::Standard qw( ArrayRef Bool HashRef InstanceOf Object Str );

has _args => (
    is      => 'ro',
    isa     => HashRef,
    lazy    => 1,
    builder => '_build_args',
);

has _config => (

lib/App/perlimports/Document.pm  view on Meta::CPAN

use PPI::Document               ();
use PPIx::Utils::Classification qw(
    is_function_call
    is_hash_key
    is_method_call
);
use Ref::Util    qw( is_plain_arrayref is_plain_hashref );
use Scalar::Util qw( refaddr );
use Sub::HandlesVia;
use Text::Diff      ();
use Try::Tiny       qw( catch try );
use Types::Standard qw( ArrayRef Bool HashRef InstanceOf Maybe Object Str );

with 'App::perlimports::Role::Logger';

has _annotations => (
    is      => 'ro',
    isa     => InstanceOf ['App::perlimports::Annotations'],
    lazy    => 1,
    default => sub {
        return App::perlimports::Annotations->new(

lib/App/perlimports/ExportInspector.pm  view on Meta::CPAN


## no critic (Modules::RequireExplicitInclusion, Subroutines::ProhibitCallsToUnexportedSubs, TestingAndDebugging::ProhibitNoStrict)

our $VERSION = '0.000057';

use App::perlimports::Sandbox ();
use Class::Inspector          ();
use List::Util                qw( any );
use Module::Runtime           qw( require_module );
use Sub::HandlesVia;
use Try::Tiny       qw( catch try );
use Types::Standard qw(ArrayRef Bool HashRef Int InstanceOf Str);

with 'App::perlimports::Role::Logger';

has at_export => (
    is          => 'ro',
    isa         => ArrayRef [Str],
    lazy        => 1,
    handles_via => 'Array',
    handles     => {

lib/App/perlimports/Include.pm  view on Meta::CPAN

our $VERSION = '0.000057';

use Data::Dumper qw( Dumper );
use List::Util   qw( any none uniq );
use Memoize      qw( flush_cache memoize );
use MooX::StrictConstructor;
use PPI::Document               ();
use PPIx::Utils::Classification qw( is_function_call is_perl_builtin );
use Ref::Util                   qw( is_plain_arrayref is_plain_hashref );
use Sub::HandlesVia;
use Try::Tiny       qw( catch try );
use Types::Standard qw(ArrayRef Bool HashRef InstanceOf Maybe Object Str);

with 'App::perlimports::Role::Logger';

memoize('is_function_call');

sub BUILD {
    flush_cache('is_function_call');
}

script/perlimports  view on Meta::CPAN

#!perl

use strict;
use warnings;

use App::perlimports::CLI ();
use Try::Tiny qw( catch try );

my $exit_code = 0;
try {
    $exit_code = App::perlimports::CLI->new->run;
}
catch {
    print STDERR $_;
    $exit_code = 1;
};

script/perlimports  view on Meta::CPAN


=item Enforcing a consistent style

Having a messy list of module imports makes your code harder to read. Imagine
this:

    use Cpanel::JSON::XS;
    use Database::Migrator::Types qw( HashRef ArrayRef Object Str Bool Maybe CodeRef FileHandle RegexpRef );
    use List::AllUtils qw( uniq any );
    use LWP::UserAgent    q{};
    use Try::Tiny qw/ catch     try /;
    use WWW::Mechanize  q<>;

L<perlimports> turns the above list into:

    use Cpanel::JSON::XS ();
    use Database::Migrator::Types qw(
        ArrayRef
        Bool
        CodeRef
        FileHandle
        HashRef
        Maybe
        Object
        RegexpRef
        Str
    );
    use List::AllUtils qw( any uniq );
    use LWP::UserAgent ();
    use Try::Tiny qw( catch try);
    use WWW::Mechanize ();

Where possible, L<perlimports> will enforce a consistent style of parentheses
and will also sort your imports and break up long lines. As mentioned above, if
some imports are no longer in use, C<perlimports> will helpfully remove these
for you.

=item Import tags

Import tags may obscure where symbols are coming from. While import tags

t/00-report-prereqs.dd  view on Meta::CPAN

                                      'Pod::Usage' => '0',
                                      'Ref::Util' => '0',
                                      'Scalar::Util' => '0',
                                      'Sereal::Decoder' => '0',
                                      'Sereal::Encoder' => '0',
                                      'Sub::HandlesVia' => '0',
                                      'Symbol::Get' => '0.10',
                                      'TOML::Tiny' => '0.16',
                                      'Text::Diff' => '0',
                                      'Text::SimpleTable::AutoWidth' => '0',
                                      'Try::Tiny' => '0',
                                      'Types::Standard' => '0',
                                      'feature' => '0',
                                      'perl' => 'v5.18.0',
                                      'strict' => '0',
                                      'utf8' => '0',
                                      'warnings' => '0'
                                    }
                    },
       'test' => {
                   'recommends' => {



( run in 0.961 second using v1.01-cache-2.11-cpan-05444aca049 )