Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Perl::PrereqScanner::LUser3Contributed Perl DocumePerl::PrereqScanner::Lite(3)

NAME
       Perl::PrereqScanner::Lite - Lightweight Prereqs Scanner for Perl

SYNOPSIS
	   use Perl::PrereqScanner::Lite;

	   my $scanner = Perl::PrereqScanner::Lite->new;
	   $scanner->add_extra_scanner('Moose'); # add extra scanner for moose style
	   my $modules = $scanner->scan_file('path/to/file');

DESCRIPTION
       Perl::PrereqScanner::Lite is the	lightweight prereqs scanner for	perl.
       This scanner uses Compiler::Lexer as tokenizer, therefore processing
       speed is	really fast.

METHODS
   new($opt)
       Create a	scanner	instance.

       $opt must be hash reference. It accepts following keys of hash:

       o   extra_scanners

	   It specifies	extra scanners.	This item must be array	reference.

	   e.g.

	       my $scanner = Perl::PrereqScanner::Lite->new(
		   extra_scanners => [qw/Moose Version/]
	       );

	   See also "add_extra_scanner($scanner_name)".

       o   no_prereq

	   It specifies	to use "## no prereq" or not. Please see also
	   "ADDITIONAL NOTATION".

   scan_file($file_path)
       Scan and	figure out prereqs which is instance of
       "CPAN::Meta::Requirements" by file path.

   scan_string($string)
       Scan and	figure out prereqs which is instance of
       "CPAN::Meta::Requirements" by source code string	written	in perl.

       e.g.

	   open	my $fh,	'<', __FILE__;
	   my $string =	do { local $/; <$fh> };
	   my $modules = $scanner->scan_string($string);

   scan_module($module_name)
       Scan and	figure out prereqs which is instance of
       "CPAN::Meta::Requirements" by module name.

       e.g.

	   my $modules = $scanner->scan_module('Perl::PrereqScanner::Lite');

   scan_tokens($tokens)
       Scan and	figure out prereqs which is instance of
       "CPAN::Meta::Requirements" by tokens of Compiler::Lexer.

       e.g.

	   open	my $fh,	'<', __FILE__;
	   my $string =	do { local $/; <$fh> };
	   my $tokens =	Compiler::Lexer->new->tokenize($string);
	   my $modules = $scanner->scan_tokens($tokens);

   add_extra_scanner($scanner_name)
       Add extra scanner to scan and figure out	prereqs. This module loads
       extra scanner such as
       "Perl::PrereqScanner::Lite::Scanner::$scanner_name" if specifying
       scanner name through this method.

       If you want to specify an extra scanner from external package without
       "Perl::PrereqScanner::Lite::" prefix, you can prepend "+" to
       $scanner_name. Like so "+Your::Awesome::Scanner".

       Extra scanners that are default supported are followings;

       o       Perl::PrereqScanner::Lite::Scanner::Moose

       o       Perl::PrereqScanner::Lite::Scanner::Version

ADDITIONAL NOTATION
       If "no_prereq" is enabled by "new()" (like so:
       "Perl::PrereqScanner::Lite->new({no_prereq => 1})"), this module
       recognize "## no	prereq"	optional comment. The requiring	declaration
       with this comment on the	same line will be ignored as prereq.

       For example

	   use Foo;
	   use Bar; ## no prereq

       In this case "Foo" is the prereq, however "Bar" is ignored.

SPEED COMPARISON
   Plain
				       Rate   Perl::PrereqScanner Perl::PrereqScanner::Lite
	   Perl::PrereqScanner	     8.57/s		       --		       -97%
	   Perl::PrereqScanner::Lite  246/s		    2770%			 --

   With	Moose scanner
				       Rate   Perl::PrereqScanner Perl::PrereqScanner::Lite
	   Perl::PrereqScanner	     9.00/s		       --		       -94%
	   Perl::PrereqScanner::Lite  152/s		    1587%			 --

NOTES
       This is a quotation from
       <https://github.com/moznion/Perl-PrereqScanner-Lite/issues/13>.

       Yes, it's true. This design is so ugly and not smart.  So I have	to
       redesign	and reimplement	this module, and I have	some plans.

       If you have a mind to expand this module	by implementing	external
       scanner,	please be careful.  Every "scan_*" calls must not affect to
       any others through the singleton	of this	module (called it $c in
       <https://github.com/moznion/Perl-PrereqScanner-Lite/blob/c03638b2e2a39d92f4d7df360af5a6be65dc417a/lib/Perl/PrereqScanner/Lite/Scanner/Moose.pm#L8>).

SEE ALSO
       Perl::PrereqScanner, Compiler::Lexer

LICENSE
       Copyright (C) moznion.

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

AUTHOR
       moznion <moznion@gmail.com>

perl v5.32.1			  2022-03-26	  Perl::PrereqScanner::Lite(3)

NAME | SYNOPSIS | DESCRIPTION | METHODS | ADDITIONAL NOTATION | SPEED COMPARISON | NOTES | SEE ALSO | LICENSE | AUTHOR

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Perl::PrereqScanner::Lite&sektion=3&manpath=FreeBSD+13.1-RELEASE+and+Ports>

home | help