Sub-Block

 view release on metacpan or  search on metacpan

META.json  view on Meta::CPAN

   "prereqs" : {
      "configure" : {
         "requires" : {
            "ExtUtils::MakeMaker" : "6.17"
         }
      },
      "runtime" : {
         "requires" : {
            "Exporter::Tiny" : "0.026",
            "Moo" : "1.000000",
            "PadWalker" : "0",
            "Sub::Quote" : "0",
            "namespace::clean" : "0"
         }
      },
      "test" : {
         "requires" : {
            "Test::More" : "0.96",
            "Test::Warnings" : "0"
         }
      }

META.yml  view on Meta::CPAN

    - t
    - xt
optional_features: {}
provides:
  Sub::Block:
    file: lib/Sub/Block.pm
    version: 0.002
requires:
  Exporter::Tiny: 0.026
  Moo: 1.000000
  PadWalker: 0
  Sub::Quote: 0
  namespace::clean: 0
resources:
  X_identifier: http://purl.org/NET/cpan-uri/dist/Sub-Block/project
  bugtracker: http://rt.cpan.org/Dist/Display.html?Queue=Sub-Block
  homepage: https://metacpan.org/release/Sub-Block
  license: http://dev.perl.org/licenses/
  repository: https://github.com/tobyink/p5-sub-block
version: 0.002

Makefile.PL  view on Meta::CPAN

                      },
  "name"           => "Sub-Block",
  "no_index"       => { directory => ["eg", "examples", "inc", "t", "xt"] },
  "prereqs"        => {
                        configure => { requires => { "ExtUtils::MakeMaker" => 6.17 } },
                        runtime => {
                          requires => {
                            "Exporter::Tiny" => 0.026,
                            "Moo" => "1.000000",
                            "namespace::clean" => 0,
                            "PadWalker" => 0,
                            "Sub::Quote" => 0,
                          },
                        },
                        test => { requires => { "Test::More" => 0.96, "Test::Warnings" => 0 } },
                      },
  "provides"       => {
                        "Sub::Block" => { file => "lib/Sub/Block.pm", version => 0.002 },
                      },
  "release_status" => "stable",
  "resources"      => {

doap.ttl  view on Meta::CPAN

@prefix xsd:   <http://www.w3.org/2001/XMLSchema#> .

<http://dev.perl.org/licenses/>
	dc:title             "the same terms as the perl 5 programming language system itself".

<http://purl.org/NET/cpan-uri/dist/Sub-Block/project>
	a                    doap:Project;
	dc:contributor       <http://purl.org/NET/cpan-uri/person/tobyink>;
	doap-deps:runtime-requirement [ doap-deps:on "Moo 1.000000"^^doap-deps:CpanId ], [
		doap-deps:on "Exporter::Tiny 0.026"^^doap-deps:CpanId;
	], [ doap-deps:on "Sub::Quote"^^doap-deps:CpanId ], [ doap-deps:on "namespace::clean"^^doap-deps:CpanId ], [ doap-deps:on "PadWalker"^^doap-deps:CpanId ];
	doap-deps:test-requirement [ doap-deps:on "Test::More 0.96"^^doap-deps:CpanId ], [ doap-deps:on "Test::Warnings"^^doap-deps:CpanId ];
	doap:bug-database    <http://rt.cpan.org/Dist/Display.html?Queue=Sub-Block>;
	doap:created         "2013-07-24"^^xsd:date;
	doap:developer       <http://purl.org/NET/cpan-uri/person/tobyink>;
	doap:download-page   <https://metacpan.org/release/Sub-Block>;
	doap:homepage        <https://metacpan.org/release/Sub-Block>;
	doap:license         <http://dev.perl.org/licenses/>;
	doap:maintainer      <http://purl.org/NET/cpan-uri/person/tobyink>;
	doap:name            "Sub-Block";
	doap:programming-language "Perl";

lib/Sub/Block.pm  view on Meta::CPAN

{
	my $class = shift;
	
	if (@_ == 1 and ref($_[0]) eq q(HASH))
	{
		return $_[0];
	}
	elsif (@_ == 1 and ref($_[0]) eq q(CODE))
	{
		require B::Deparse;
		require PadWalker;
		$deparse ||= 'B::Deparse'->new;
		
		my $coderef = shift;
		$class->_check_coderef($coderef);
		
		my $closures = PadWalker::closed_over($coderef);
		my $perlcode = $deparse->coderef2text($coderef);
		
		$perlcode =~ s/(?:\A\{)|(?:\}\z)//g;
		return +{ sub => Sub::Quote::quote_sub($perlcode, $closures) }
	}
	else
	{
		return +{ sub => scalar Sub::Quote::quote_sub(@_) };
	}
}



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