App-GenModEmbedder

 view release on metacpan or  search on metacpan

bin/gen-mod-embedder  view on Meta::CPAN


 as (see --as)
 format (see --format)
 indent_level (see --indent-level)
 module (see --module)
 naked_res (see --naked-res)
 strip_pod (see --strip-pod)

=head1 ENVIRONMENT

=head2 GEN_MOD_EMBEDDER_OPT => str

Specify additional command-line options

=head1 FILES

~/.config/gen-mod-embedder.conf

~/gen-mod-embedder.conf

/etc/gen-mod-embedder.conf

lib/App/GenModEmbedder.pm  view on Meta::CPAN

    if ($mod ne $as) {
        $source =~ s/\b(package\s+)\Q$mod\E\b/$1 . $as/es;
    }

    $source =~ s/\s+\z//s;
    $source .= "\n";
    $source =~ s/^/#/mg;

    my $i0 = "    " x $args{indent_level};

    my $preamble = "${i0}# BEGIN EMBEDDING MODULE: mod=$mod ver=$version generator=\"".__PACKAGE__." ".(${__PACKAGE__."::VERSION"})."\" generated-at=\"".(scalar localtime)."\"\n";
    $preamble .= "${i0}unless (eval { require $as; 1 }) {\n";
    $preamble .= "${i0}    my \$source = '##line ' . (__LINE__+1) . ' \"' . __FILE__ . qq(\"\\n) . <<'EOS';\n";
    my $postamble = "EOS\n";
    $postamble .= "${i0}    \$source =~ s/^#//gm;\n";
    $postamble .= "${i0}    eval \$source; die if \$@;\n";
    $postamble .= "${i0}    \$INC{'$as_pm'} = '(set by embedding code in '.__FILE__.')';\n";
    $postamble .= "${i0}}\n";
    $postamble .= "${i0}# END EMBEDDING MODULE\n";

    return [200, "OK", $preamble . $source . $postamble,
            {"cmdline.skip_format" => 1}];
}

1;
# ABSTRACT: Generate a piece of Perl code that embeds a module

__END__



( run in 0.816 second using v1.01-cache-2.11-cpan-0b58ddf2af1 )