Venus::Test

Test Class

Test Class for Perl 5

function: test method: auto method: diag method: done method: eval method: explain method: fail method: for method: gate method: handler method: in method: is method: is_arrayref method: is_blessed method: is_boolean method: is_coderef method: is_dirhandle method: is_enum method: is_error method: is_false method: is_fault method: is_filehandle method: is_float method: is_glob method: is_hashref method: is_number method: is_object method: is_package method: is_reference method: is_regexp method: is_scalarref method: is_string method: is_true method: is_undef method: is_value method: is_yesno method: isnt method: isnt_arrayref method: isnt_blessed method: isnt_boolean method: isnt_coderef method: isnt_dirhandle method: isnt_enum method: isnt_error method: isnt_false method: isnt_fault method: isnt_filehandle method: isnt_float method: isnt_glob method: isnt_hashref method: isnt_number method: isnt_object method: isnt_package method: isnt_reference method: isnt_regexp method: isnt_scalarref method: isnt_string method: isnt_true method: isnt_undef method: isnt_value method: isnt_yesno method: lfile method: like method: mktemp_dir method: mktemp_file method: new method: note method: only_if method: os method: os_is_bsd method: os_is_cyg method: os_is_dos method: os_is_lin method: os_is_mac method: os_is_non method: os_is_sun method: os_is_vms method: os_is_win method: os_isnt_bsd method: os_isnt_cyg method: os_isnt_dos method: os_isnt_lin method: os_isnt_mac method: os_isnt_non method: os_isnt_sun method: os_isnt_vms method: os_isnt_win method: pass method: patch method: path method: pfile method: render method: same method: skip method: skip_if method: space method: subtest method: text method: tfile method: type method: unlike method: unpatch

package main;

use Venus::Test;

my $test = Venus::Test->new('t/Venus_Test.t');

# $test->for('name');

# $test->for('tagline');

# $test->for('abstract');

# $test->for('synopsis');

# $test->done;

This package aims to provide a standard for documenting Venus derived software projects, a framework writing tests, test automation, and documentation generation. This package will automatically exports true, false, and "test" keyword functions.

+=cut

+=head1 SPECIFICATION

This section describes the specification format used by Venus::Test to generate documentation and automate testing for Perl packages. The specification uses specially formatted POD blocks that serve as both human-readable documentation and executable test cases.

Note: When code blocks are evaluated, "redefined" warnings are automatically disabled.

+=head2 Overview

A specification document consists of POD blocks that describe a package. The blocks are organized into the following categories:

+=over 4

+=item * Required Blocks - Must be present in every specification

+=item * Package Structure Blocks - Define inheritance and dependencies

+=item * API Blocks - Document attributes, methods, functions, etc.

+=item * Supporting Blocks - Signatures, examples, metadata, and exceptions

+=item * Feature Blocks - Special capabilities and operators

+=item * Document Control Blocks - Layout and partial inclusions

+=item * Project Information Blocks - Authors, license, version

+=back

+=head2 Quick Reference

# [required]

=name
=abstract
=tagline
=synopsis
=description

# [optional]

=encoding
=includes
=libraries
=inherits
=integrates

# [optional; repeatable]

=attribute $name
=signature $name
=metadata $name
=example-$number $name
=raise $name $error ($id optional)

=function $name
=signature $name
=metadata $name
=example-$number $name
=raise $name $error ($id optional)

=message $name
=signature $name
=metadata $name
=example-$number $name

=method $name
=signature $name
=metadata $name
=example-$number $name
=raise $name $error ($id optional)

=routine $name
=signature $name
=metadata $name
=example-$number $name
=raise $name $error ($id optional)

=feature $name
=metadata $name
=example-$number $name

=error $name
=example-$number $name

=operator $name
=example-$number $name

# [optional]

=layout
=partials
=authors
=license
=project
=version

+=head1 REQUIRED BLOCKS

These blocks must be present in every specification document.

+=head2 name

=name

Example

=cut

$test->for('name');

The name block should contain the package name. This is tested for loadability.

+=head2 abstract

=abstract

Example Test Documentation

=cut

$test->for('abstract');

The abstract block should contain a subtitle describing the package. This is tested for existence.

+=head2 tagline

=tagline

Example Class

=cut

$test->for('tagline');

The tagline block should contain a 2-5 word description of the package, which will be prepended to the name as a full description of the package.

+=head2 synopsis

=synopsis

  use Example;

  my $example = Example->new;

  # bless(..., "Example")

=cut

$test->for('synopsis', sub {
  my ($tryable) = @_;
  $tryable->result;
});

The synopsis block should contain the normative usage of the package. This is tested for existence. This block should be written in a way that allows it to be evaled successfully and should return a value.

+=head2 description

=description

This package provides an example class.

=cut

$test->for('description');

The description block should contain a description of the package and its behaviors.

+=head1 PACKAGE BLOCKS

These optional blocks define the package's relationships and dependencies.

+=head2 includes

=includes

function: eg

method: prepare
method: execute

=cut

$test->for('includes');

The includes block should contain a list of function, method, and/or routine names in the format of $type: $name. Empty (or commented out) lines are ignored. Each function, method, and/or routine is tested to be documented properly, i.e. has the requisite counterparts (e.g. signature and at least one example block). Also, the package must recognize that each exists.

+=head2 libraries

=libraries

Venus::Check

=cut

$test->for('libraries');

The libraries block should contain a list of packages, each describing how particular type names used within function and method signatures will be validated. These packages are tested for loadability.

+=head2 inherits

=inherits

Venus::Core::Class

=cut

$test->for('inherits');

The inherits block should contain a list of parent packages. These packages are tested for loadability.

+=head2 integrates

=integrates

Venus::Role::Catchable
Venus::Role::Throwable

=cut

$test->for('integrates');

The integrates block should contain a list of packages that are involved in the behavior of the main package (typically roles). These packages are not automatically tested.

+=head1 API BLOCKS

These blocks document the package's interface: attributes, methods, functions, messages, and routines. Each API block follows a common pattern requiring a description block, a signature block, and at least one example block.

+=head2 Common Pattern

All API blocks (attribute, function, message, method, routine) follow this structure:

=$type $name               # Description of the $type
=signature $name           # Type signature
=metadata $name            # Optional metadata (since, deprecated, etc.)
=example-1 $name           # First example (required)
=example-2 $name           # Additional examples (optional)
=raise $name $error        # Document exceptions (optional)
=raise $name $error $id    # Exception with named error (optional)
...

The signature block should contain a routine signature in the form of $signature : $return_type, where $signature is a valid typed signature and $return_type is any valid Venus::Check expression.

The example-$number block should contain valid Perl code and return a value. Examples can include a "magic" comment to incorporate other code:

+=over 4

+=item * # given: synopsis - Include the synopsis code

+=item * # given: example-$number $name - Include another example's code

+=back

+=head2 attribute

=attribute name

The name attribute is read-write, optional, and holds a string.

=signature name

  name(string $value) (string)

=metadata name

since: 1.0.0

=example-1 name

  # given: synopsis

  my $name = $example->name;

  # "..."

=cut

$test->for('attribute', 'name');

$test->for('example', 1, 'name', sub {
  my ($tryable) = @_;
  $tryable->result;
});

The attribute block should contain a description of the attribute and its purpose. Each attribute is tested and must be recognized to exist.

+=head2 method

=method prepare

The prepare method prepares for execution.

=signature prepare

  prepare() (boolean)

=example-1 prepare

  # given: synopsis

  my $prepare = $example->prepare;

  # "..."

=cut

$test->for('method', 'prepare');

$test->for('example', 1, 'prepare', sub {
  my ($tryable) = @_;
  $tryable->result;
});

The method block should contain a description of the method and its purpose. Each method is tested and must be recognized to exist.

+=head2 function

=function eg

The eg function returns a new instance of Example.

=signature eg

  eg() (Example)

=example-1 eg

  # given: synopsis

  my $example = eg();

  # "..."

=cut

$test->for('function', 'eg');

$test->for('example', 1, 'eg', sub {
  my ($tryable) = @_;
  $tryable->result;
});

The function block should contain a description of the function and its purpose. Each function is tested and must be recognized to exist.

+=head2 routine

=routine process

The process routine processes and returns data.

=signature process

  process(any @args) (any)

=example-1 process

  # given: synopsis

  my $result = $example->process;

  # "..."

=cut

$test->for('routine', 'process');

$test->for('example', 1, 'process', sub {
  my ($tryable) = @_;
  $tryable->result;
});

The routine block documents a subroutine that can be called as either a function or a method. It follows the same pattern as method and function blocks.

+=head2 message

=message accept

The accept message represents acceptance.

=signature accept

  accept(any @args) (string)

=example-1 accept

  # given: synopsis

  my $accept = $example->accept;

  # "..."

=cut

$test->for('message', 'accept');

$test->for('example', 1, 'accept', sub {
  my ($tryable) = @_;
  $tryable->result;
});

The message block documents a method that returns a message string, typically used for error messages or localization. It follows the same pattern as other API blocks.

+=head1 SUPPORTING BLOCKS

These blocks provide additional context for API documentation.

+=head2 signature

=signature prepare

  prepare() (boolean)

=cut

$test->for('signature', 'prepare');

The signature block should contain a routine signature in the form of $signature : $return_type, where $signature is a valid typed signature and $return_type is any valid Venus::Check expression.

+=head2 example

=example-1 name

  # given: synopsis

  my $name = $example->name;

  # "..."

=cut

$test->for('example', 1, 'name', sub {
  my ($tryable) = @_;
  $tryable->result;
});

The example-$number $name block should contain valid Perl code and return a value. The block may contain a "magic" comment in the form of given: synopsis or given: example-$number $name which if present will include the given code example(s) with the evaluation of the current block.

+=head2 metadata

=metadata prepare

{since => "1.2.3"}

=cut

$test->for('metadata', 'prepare');

The metadata $name block should contain a stringified hashref containing Perl data structures used in the rendering of the package's documentation. Metadata can also be specified as flat key/value pairs:

=metadata prepare

introduced: 1.2.3
deprecated: 2.0.0

=cut

+=head2 raise

=raise execute Venus::Error

  # given: synopsis

  $example->operation; # throw exception

  # Error

=cut

$test->for('raise', 'execute', 'Venus::Error', sub {
  my ($tryable) = @_;
  my $error = $tryable->error->result;
  $test->is_error($error);
});

The raise $name $error block documents an exception that may be thrown by an API (attribute, function, method, or routine). The parameters are:

+=over 4

+=item * $name - The name of the attribute, function, method, or routine that may throw the exception.

+=item * $error - The error class or package that may be caught (e.g., Venus::Error, Example::Error).

+=item * $id (optional) - An error name for further classification within the error class.

+=back

The $error represents the exception class that calling code can catch using a try/catch mechanism. This links the API documentation to error handling expectations.

An optional $id can be appended to specify a named error. Venus::Error objects support named errors for further classification:

=raise execute Venus::Error on.unknown

  # given: synopsis

  $example->operation; # throw exception

  # Error (on.unknown)

=cut

$test->for('raise', 'execute', 'Venus::Error', 'on.unknown', sub {
  my ($tryable) = @_;
  my $error = $tryable->error->result;
  $test->is_error($error);
  $test->is($error->name, 'on.unknown');
});

When $id is provided, it indicates a specific named error within the error class, allowing for more granular error documentation and handling.

+=head1 FEATURE BLOCKS

These blocks document special capabilities, errors, and operator overloads.

+=head2 feature

=feature noop

This package provides no particularly useful features.

=example-1 noop

  # given: synopsis

  my $feature = $example->feature;

  # "..."

=cut

$test->for('feature');

$test->for('example', 1, 'noop', sub {
  my ($tryable) = @_;
  $tryable->result;
});

The feature $name block should contain a description of the feature(s) the package enables, and can include an example-$number $name block to ensure the feature described works as expected.

+=head2 error

=error error_on_unknown

This package may raise an error_on_unknown error.

=example-1 error_on_unknown

  # given: synopsis

  my $error = $example->catch('error', {
    with => 'error_on_unknown',
  });

  # "..."

=cut

$test->for('error', 'error_on_unknown');

$test->for('example', 1, 'error_on_unknown', sub {
  my ($tryable) = @_;
  $tryable->result;
});

The error $name block should contain a description of the error the package may raise, and can include an example-$number $name block to ensure the error is raised and caught.

+=head2 operator

=operator ("")

This package overloads the C<""> operator.

=example-1 ("")

  # given: synopsis

  my $string = "$example";

  # "..."

=cut

$test->for('operator', '("")');

$test->for('example', 1, '("")', sub {
  my ($tryable) = @_;
  $tryable->result;
});

The operator $name block should contain a description of the overloaded operation the package performs, and can include an example-$number $name block to ensure the operation is functioning properly.

+=head1 CONTROL BLOCKS

These blocks control how documentation is rendered.

+=head2 encoding

=encoding

utf8

=cut

$test->for('encoding');

The encoding block should contain the appropriate encoding.

+=head2 layout

=layout

encoding
name
synopsis
description
attributes: attribute
authors
license

=cut

$test->for('layout');

The layout block should contain a list of blocks to render using "render", in the order they should be rendered.

+=head2 partials

=partials

t/path/to/other.t: present: authors
t/path/to/other.t: present: license

=cut

$test->for('partials');

The partials block should contain references to other marked-up test files in the form of $file: $method: $section, which will call the $method on a Venus::Test instance for the $file and include the results in-place as part of the rendering of the current file.

+=head1 PROJECT BLOCKS

These blocks provide metadata about the project.

+=head2 authors

=authors

Awncorp, C<awncorp@cpan.org>

=cut

$test->for('authors');

The authors block should contain text describing the authors of the package.

+=head2 license

=license

No license granted.

=cut

$test->for('license');

The license block should contain a link and/or description of the license governing the package.

+=head2 project

=project

https://github.com/awncorp/example

=cut

$test->for('project');

The project block should contain a description and/or links for the package's project.

+=head2 version

=version

1.2.3

=cut

$test->for('version');

The version block should contain a valid version number for the package.

+=head1 TESTING

This framework provides automated subtests based on the package specification, but also provides hooks for manual testing when automation is not sufficient.

+=head2 Basic Testing

For simple blocks, testing verifies existence:

$test->for('name');
$test->for('abstract');
$test->for('description');

+=head2 Testing with Callbacks

Code examples can be evaluated and returned using a callback for further testing:

$test->for('synopsis', sub {
  my ($tryable) = @_;

  my $result = $tryable->result;

  # must return truthy to continue
  $result;
});

+=head2 Exception Testing

Because code examples are returned as Venus::Try objects, capturing and testing exceptions is straightforward:

$test->for('synopsis', sub {
  my ($tryable) = @_;

  # catch exception thrown by the synopsis
  $tryable->catch('Path::Find::Error', sub {
    return $_[0];
  });

  # test the exception
  my $result = $tryable->result;
  ok $result->isa('Path::Find::Error'), 'exception caught';

  # must return truthy to continue
  $result;
});

+=head2 Testing Examples

The example method evaluates a given example and returns the result as a Venus::Try object. The first argument is the example number:

$test->for('example', 1, 'children', sub {
  my ($tryable) = @_;

  my $result = $tryable->result;

  # must return truthy to continue
  $result;
});

+=head2 Testing Features

The feature method evaluates a documented feature and returns the result as a Venus::Try object:

$test->for('feature', 'export-path-make', sub {
  my ($tryable) = @_;

  ok my $result = $tryable->result, 'result ok';

  # must return truthy to continue
  $result;
});

+=head2 Benefits

The test automation and documentation generation enabled through this framework makes it easy to maintain source/test/documentation parity. This also increases reusability and reduces the need for complicated state and test setup.

Venus::Kind

Venus::Role::Buildable Venus::Role::Encaseable

The file attribute is read-write, accepts (string) values, and is required.

file(string $data) (string)

since: 4.15

The test function is exported automatically and returns a Venus::Test object for the test file given.

test(string $file) (Venus::Test)

{ since => '0.09', }

=example-1 test

package main;

use Venus::Test;

my $test = test 't/Venus_Test.t';

# bless(..., "Venus::Test")

The done method dispatches to the "done_testing" in Test::More operation and returns the result.

done() (any)

since: 4.15

The explain method dispatches to the "explain" in Test::More operation and returns the result.

explain(any @args) (any)

since: 4.15

The fail method dispatches to the "ok" in Test::More operation expecting the first argument to be falsy and returns the result.

fail(any $data, string $description) (any)

since: 4.15

The for method dispatches to the "execute" method using the arguments provided within a subtest and returns the invocant.

for(any @args) (Venus::Test)

since: 4.15

The handler method dispatches to the Test::More method specified by the first argument and returns its result.

handler(any @args) (any)

since: 4.15

The like method dispatches to the "like" in Test::More operation and returns the result.

like(string $data, string | Venus::Regexp $match, string $description) (any)

since: 4.15

The new method constructs an instance of the package.

new(any @args) (Venus::Test)

since: 4.15

The pass method dispatches to the "ok" in Test::More operation expecting the first argument to be truthy and returns the result.

pass(any $data, string $description) (any)

since: 4.15

The render method reads the test specification and generates perlpod documentation and returns a Venus::Path object for the filename provided.

render(string $file) (Venus::Path)

since: 4.15

The same method dispatches to the "is_deeply" in Test::More operation and returns the result.

same(any $data1, any $data2, string $description) (any)

since: 4.15

The skip method dispatches to the "skip" in Test::More operation with the plan_all option and returns the result.

skip(string $reason) (any)

since: 4.15

The text method returns a Venus::Text::Pod object using "file" for parsing the test specification.

text() (Venus::Text::Pod)

since: 4.15

The auto method gets or sets environment variables that control automatic behaviors in the testing framework. When called with just a name, it returns the current value of the corresponding environment variable. When called with a name and value, it sets the environment variable. The environment variable name is derived from the name parameter as VENUS_TEST_AUTO_${NAME}.

Supported auto settings:

+=over 4

+=item * bailout - When truthy, bails out of testing on the first error.

+=item * render - When truthy, automatically renders POD when "done" is called.

+=item * scrub - When truthy, uses "scrub" in Venus::Space to clean up packages created in example code for testing.

+=item * unpatch - When truthy, uses "unpatch" in Venus::Space (via "unpatch") to restore any existing monkey-patching on the package associated with the test.

+=back

auto(string $name, any @args) (any)

since: 4.15

The diag method prints diagnostic messages using "diag" in Test::More.

diag(string @messages) (any)

since: 4.15

The eval method evaluates Perl code and returns the result.

eval(string $perl) (any)

since: 4.15

The gate method creates a new Venus::Test instance with a gate callback that prevents subtests from running unless the callback returns a truthy value.

gate(string $note, coderef $code) (Venus::Test)

since: 4.15

The in method checks if a value exists in a collection (arrayref, hashref, or "mappable" object) and returns true if the type and value match.

in(arrayref | hashref | consumes[Venus::Role::Mappable] $collection, any $value) (boolean)

since: 4.15

The is method tests for equality using "is" in Test::More.

is(any $data1, any $data2, string $description) (any)

since: 4.15

The isnt method tests for inequality using "isnt" in Test::More.

isnt(any $data1, any $data2, string $description) (any)

since: 4.15

The lfile method returns the path to a lib file for the package being tested.

lfile() (Venus::Path)

since: 4.15

The mktemp_dir method creates and returns a temporary directory as a Venus::Path object.

mktemp_dir() (Venus::Path)

since: 4.15

The mktemp_file method creates and returns a temporary file as a Venus::Path object.

mktemp_file() (Venus::Path)

since: 4.15

The note method prints debugging messages using "diag" in Test::More and "explain" in Test::More.

note(string @messages) (any)

since: 4.15

The only_if method creates a gate that only runs subtests if the callback returns a truthy value.

only_if(string | coderef $code) (Venus::Test)

since: 4.15

The os method returns a Venus::Os object.

os() (Venus::Os)

since: 4.15

The patch method monkey-patches the named subroutine and returns the original coderef.

patch(string $name, coderef $code) (coderef)

since: 4.15

The path method returns a Venus::Path object for the given path. Defaults to the test file.

path(string $path) (Venus::Path)

since: 4.15

The pfile method returns the path to a pod file for the package being tested.

pfile() (Venus::Path)

since: 4.15

The skip_if method creates a gate that only runs subtests if the callback returns a falsy value.

skip_if(string | coderef $code) (Venus::Test)

since: 4.15

The space method returns a Venus::Space object for the package being tested, or for the package name provided.

space(string $package) (Venus::Space)

since: 4.15

The subtest method runs a subtest using "subtest" in Test::More. Enclosed tests maybe be made conditional using a "gate", e.g., "only_if" and "skip_if".

subtest(string $name, coderef $code) (any)

since: 4.15

The tfile method returns the path to a test file for the package being tested.

tfile() (Venus::Path)

since: 4.15

The type method performs type assertion using Venus::Type and tests if the data matches the type expression.

type(any $data, string $expression, string @args) (boolean)

since: 4.15

The unlike method tests that a string doesn't match a regex using "unlike" in Test::More.

unlike(string $data, regexp $regex, string $description) (any)

since: 4.15

The unpatch method undoes patches by name, or undoes all patches if no names are provided.

unpatch(string @names) (Venus::Space)

since: 4.15

The is_arrayref method tests whether the data is an arrayref using "is_arrayref" in Venus.

is_arrayref(any $data, string @args) (boolean)

since: 4.15

The is_blessed method tests whether the data is blessed using "is_blessed" in Venus.

is_blessed(any $data, string @args) (boolean)

since: 4.15

The is_boolean method tests whether the data is a boolean using "is_boolean" in Venus.

is_boolean(any $data, string @args) (boolean)

since: 4.15

The is_coderef method tests whether the data is a coderef using "is_coderef" in Venus.

is_coderef(any $data, string @args) (boolean)

since: 4.15

The is_hashref method tests whether the data is a hashref using "is_hashref" in Venus.

is_hashref(any $data, string @args) (boolean)

since: 4.15

The is_number method tests whether the data is a number using "is_number" in Venus.

is_number(any $data, string @args) (boolean)

since: 4.15

The is_object method tests whether the data is an object using "is_object" in Venus.

is_object(any $data, string @args) (boolean)

since: 4.15

The is_regexp method tests whether the data is a regexp using "is_regexp" in Venus.

is_regexp(any $data, string @args) (boolean)

since: 4.15

The is_string method tests whether the data is a string using "is_string" in Venus.

is_string(any $data, string @args) (boolean)

since: 4.15

The is_undef method tests whether the data is undef using "is_undef" in Venus.

is_undef(any $data, string @args) (boolean)

since: 4.15

The is_dirhandle method tests whether the data is a directory handle using "is_dirhandle" in Venus.

is_dirhandle(any $data, string @args) (boolean)

since: 4.15

The is_enum method tests whether the data is an enum using "is_enum" in Venus.

is_enum(any $data, arrayref | hashref $data, string @args) (boolean)

since: 4.15

The is_error method tests whether the data is a Venus::Error object using "is_error" in Venus.

is_error(any $data, string @args) (boolean)

since: 4.15

The is_false method tests whether the data is a false value using "is_false" in Venus.

is_false(any $data, string @args) (boolean)

since: 4.15

The is_fault method tests whether the data is a Venus::Fault object using "is_fault" in Venus.

is_fault(any $data, string @args) (boolean)

since: 4.15

The is_filehandle method tests whether the data is a file handle using "is_filehandle" in Venus.

is_filehandle(any $data, string @args) (boolean)

since: 4.15

The is_float method tests whether the data is a float using "is_float" in Venus.

is_float(any $data, string @args) (boolean)

since: 4.15

The is_glob method tests whether the data is a glob reference using "is_glob" in Venus.

is_glob(any $data, string @args) (boolean)

since: 4.15

The is_package method tests whether the data is a package name using "is_package" in Venus.

is_package(any $data, string @args) (boolean)

since: 4.15

The is_reference method tests whether the data is a reference using "is_reference" in Venus.

is_reference(any $data, string @args) (boolean)

since: 4.15

The is_scalarref method tests whether the data is a scalar reference using "is_scalarref" in Venus.

is_scalarref(any $data, string @args) (boolean)

since: 4.15

The is_true method tests whether the data is a true value using "is_true" in Venus.

is_true(any $data, string @args) (boolean)

since: 4.15

The is_value method tests whether the data is a defined value using "is_value" in Venus.

is_value(any $data, string @args) (boolean)

since: 4.15

The is_yesno method tests whether the data is a yes/no value using "is_yesno" in Venus.

is_yesno(any $data, string @args) (boolean)

since: 4.15

The isnt_arrayref method tests whether the data is not an arrayref.

isnt_arrayref(any $data, string @args) (boolean)

since: 4.15

The isnt_hashref method tests whether the data is not a hashref.

isnt_hashref(any $data, string @args) (boolean)

since: 4.15

The isnt_blessed method tests whether the data is not a blessed object.

isnt_blessed(any $data, string @args) (boolean)

since: 4.15

The isnt_boolean method tests whether the data is not a boolean.

isnt_boolean(any $data, string @args) (boolean)

since: 4.15

The isnt_coderef method tests whether the data is not a coderef.

isnt_coderef(any $data, string @args) (boolean)

since: 4.15

The isnt_dirhandle method tests whether the data is not a directory handle.

isnt_dirhandle(any $data, string @args) (boolean)

since: 4.15

The isnt_enum method tests whether the data is not an enum.

isnt_enum(any $data, arrayref | hashref $data, string @args) (boolean)

since: 4.15

The isnt_error method tests whether the data is not a Venus::Error object.

isnt_error(any $data, string @args) (boolean)

since: 4.15

The isnt_false method tests whether the data is not a false value.

isnt_false(any $data, string @args) (boolean)

since: 4.15

The isnt_fault method tests whether the data is not a Venus::Fault object.

isnt_fault(any $data, string @args) (boolean)

since: 4.15

The isnt_filehandle method tests whether the data is not a file handle.

isnt_filehandle(any $data, string @args) (boolean)

since: 4.15

The isnt_float method tests whether the data is not a float.

isnt_float(any $data, string @args) (boolean)

since: 4.15

The isnt_glob method tests whether the data is not a glob reference.

isnt_glob(any $data, string @args) (boolean)

since: 4.15

The isnt_number method tests whether the data is not a number.

isnt_number(any $data, string @args) (boolean)

since: 4.15

The isnt_object method tests whether the data is not an object.

isnt_object(any $data, string @args) (boolean)

since: 4.15

The isnt_package method tests whether the data is not a package name.

isnt_package(any $data, string @args) (boolean)

since: 4.15

The isnt_reference method tests whether the data is not a reference.

isnt_reference(any $data, string @args) (boolean)

since: 4.15

The isnt_regexp method tests whether the data is not a regexp.

isnt_regexp(any $data, string @args) (boolean)

since: 4.15

The isnt_scalarref method tests whether the data is not a scalar reference.

isnt_scalarref(any $data, string @args) (boolean)

since: 4.15

The isnt_string method tests whether the data is not a string.

isnt_string(any $data, string @args) (boolean)

since: 4.15

The isnt_true method tests whether the data is not a true value.

isnt_true(any $data, string @args) (boolean)

since: 4.15

The isnt_undef method tests whether the data is not undef.

isnt_undef(any $data, string @args) (boolean)

since: 4.15

The isnt_value method tests whether the data is not a defined value.

isnt_value(any $data, string @args) (boolean)

since: 4.15

The isnt_yesno method tests whether the data is not a yes/no value.

isnt_yesno(any $data, string @args) (boolean)

since: 4.15

The os_is_bsd method returns true if the operating system is BSD.

os_is_bsd() (boolean)

since: 4.15

The os_is_lin method returns true if the operating system is Linux.

os_is_lin() (boolean)

since: 4.15

The os_is_mac method returns true if the operating system is macOS.

os_is_mac() (boolean)

since: 4.15

The os_is_cyg method returns true if the operating system is Cygwin.

os_is_cyg() (boolean)

since: 4.15

The os_is_dos method returns true if the operating system is DOS.

os_is_dos() (boolean)

since: 4.15

The os_is_non method returns true if the operating system is non-Unix.

os_is_non() (boolean)

since: 4.15

The os_is_sun method returns true if the operating system is Solaris.

os_is_sun() (boolean)

since: 4.15

The os_is_vms method returns true if the operating system is VMS.

os_is_vms() (boolean)

since: 4.15

The os_is_win method returns true if the operating system is Windows.

os_is_win() (boolean)

since: 4.15

The os_isnt_bsd method returns true if the operating system is not BSD.

os_isnt_bsd() (boolean)

since: 4.15

The os_isnt_mac method returns true if the operating system is not macOS.

os_isnt_mac() (boolean)

since: 4.15

The os_isnt_cyg method returns true if the operating system is not Cygwin.

os_isnt_cyg() (boolean)

since: 4.15

The os_isnt_dos method returns true if the operating system is not DOS.

os_isnt_dos() (boolean)

since: 4.15

The os_isnt_lin method returns true if the operating system is not Linux.

os_isnt_lin() (boolean)

since: 4.15

The os_isnt_non method returns true if the operating system is not non-Unix.

os_isnt_non() (boolean)

since: 4.15

The os_isnt_sun method returns true if the operating system is not Solaris.

os_isnt_sun() (boolean)

since: 4.15

The os_isnt_vms method returns true if the operating system is not VMS.

os_isnt_vms() (boolean)

since: 4.15

The os_isnt_win method returns true if the operating system is not Windows.

os_isnt_win() (boolean)

since: 4.15

The collect method dispatches to the collect_data_for_${name} method indictated by the first argument and returns the result. Returns an arrayref in scalar context, and a list in list context.

collect(string $name, any @args) (any)

introduced: 3.55 deprecated: 4.15

The collect_data_for_abstract method uses "data" to fetch data for the abstract section and returns the data. Returns an arrayref in scalar context, and a list in list context.

collect_data_for_abstract() (arrayref)

introduced: 3.55 deprecated: 4.15

The collect_data_for_attribute method uses "data" to fetch data for the attribute $name section and returns the data. Returns an arrayref in scalar context, and a list in list context.

collect_data_for_attribute(string $name) (arrayref)

introduced: 3.55 deprecated: 4.15

The collect_data_for_authors method uses "data" to fetch data for the authors section and returns the data. Returns an arrayref in scalar context, and a list in list context.

collect_data_for_authors() (arrayref)

introduced: 3.55 deprecated: 4.15

The collect_data_for_description method uses "data" to fetch data for the description section and returns the data. Returns an arrayref in scalar context, and a list in list context.

collect_data_for_description() (arrayref)

introduced: 3.55 deprecated: 4.15

The collect_data_for_encoding method uses "data" to fetch data for the encoding section and returns the data. Returns an arrayref in scalar context, and a list in list context.

collect_data_for_encoding() (arrayref)

introduced: 3.55 deprecated: 4.15

The collect_data_for_error method uses "data" to fetch data for the error $name section and returns the data. Returns an arrayref in scalar context, and a list in list context.

collect_data_for_error(string $name) (arrayref)

introduced: 3.55 deprecated: 4.15

The collect_data_for_example method uses "data" to fetch data for the example-$number $name section and returns the data. Returns an arrayref in scalar context, and a list in list context.

collect_data_for_example(number $numberm string $name) (arrayref)

introduced: 3.55 deprecated: 4.15

The collect_data_for_feature method uses "data" to fetch data for the feature $name section and returns the data. Returns an arrayref in scalar context, and a list in list context.

collect_data_for_feature(string $name) (arrayref)

introduced: 3.55 deprecated: 4.15

The collect_data_for_function method uses "data" to fetch data for the function $name section and returns the data. Returns an arrayref in scalar context, and a list in list context.

collect_data_for_function(string $name) (arrayref)

introduced: 3.55 deprecated: 4.15

The collect_data_for_includes method uses "data" to fetch data for the includes section and returns the data. Returns an arrayref in scalar context, and a list in list context.

collect_data_for_includes() (arrayref)

introduced: 3.55 deprecated: 4.15

The collect_data_for_inherits method uses "data" to fetch data for the inherits section and returns the data. Returns an arrayref in scalar context, and a list in list context.

collect_data_for_inherits() (arrayref)

introduced: 3.55 deprecated: 4.15

The collect_data_for_integrates method uses "data" to fetch data for the integrates section and returns the data. Returns an arrayref in scalar context, and a list in list context.

collect_data_for_integrates() (arrayref)

introduced: 3.55 deprecated: 4.15

The collect_data_for_layout method uses "data" to fetch data for the layout section and returns the data. Returns an arrayref in scalar context, and a list in list context.

collect_data_for_layout() (arrayref)

introduced: 3.55 deprecated: 4.15

The collect_data_for_libraries method uses "data" to fetch data for the libraries section and returns the data. Returns an arrayref in scalar context, and a list in list context.

collect_data_for_libraries() (arrayref)

introduced: 3.55 deprecated: 4.15

The collect_data_for_license method uses "data" to fetch data for the license section and returns the data. Returns an arrayref in scalar context, and a list in list context.

collect_data_for_license() (arrayref)

introduced: 3.55 deprecated: 4.15

The collect_data_for_message method uses "data" to fetch data for the message $name section and returns the data. Returns an arrayref in scalar context, and a list in list context.

collect_data_for_message(string $name) (arrayref)

introduced: 3.55 deprecated: 4.15

The collect_data_for_metadata method uses "data" to fetch data for the metadata $name section and returns the data. Returns an arrayref in scalar context, and a list in list context.

collect_data_for_metadata(string $name) (arrayref)

introduced: 3.55 deprecated: 4.15

The collect_data_for_method method uses "data" to fetch data for the method $name section and returns the data. Returns an arrayref in scalar context, and a list in list context.

collect_data_for_method(string $name) (arrayref)

introduced: 3.55 deprecated: 4.15

The collect_data_for_name method uses "data" to fetch data for the name section and returns the data. Returns an arrayref in scalar context, and a list in list context.

collect_data_for_name() (arrayref)

introduced: 3.55 deprecated: 4.15

The collect_data_for_operator method uses "data" to fetch data for the operator $name section and returns the data. Returns an arrayref in scalar context, and a list in list context.

collect_data_for_operator(string $name) (arrayref)

introduced: 3.55 deprecated: 4.15

The collect_data_for_partials method uses "data" to fetch data for the partials section and returns the data. Returns an arrayref in scalar context, and a list in list context.

collect_data_for_partials() (arrayref)

introduced: 3.55 deprecated: 4.15

The collect_data_for_project method uses "data" to fetch data for the project section and returns the data. Returns an arrayref in scalar context, and a list in list context.

collect_data_for_project() (arrayref)

introduced: 3.55 deprecated: 4.15

The collect_data_for_signature method uses "data" to fetch data for the signature $name section and returns the data. Returns an arrayref in scalar context, and a list in list context.

collect_data_for_signature(string $name) (arrayref)

introduced: 3.55 deprecated: 4.15

The collect_data_for_synopsis method uses "data" to fetch data for the synopsis section and returns the data. Returns an arrayref in scalar context, and a list in list context.

collect_data_for_synopsis() (arrayref)

introduced: 3.55 deprecated: 4.15

The collect_data_for_tagline method uses "data" to fetch data for the tagline section and returns the data. Returns an arrayref in scalar context, and a list in list context.

collect_data_for_tagline() (arrayref)

introduced: 3.55 deprecated: 4.15

The collect_data_for_version method uses "data" to fetch data for the version section and returns the data. Returns an arrayref in scalar context, and a list in list context.

collect_data_for_version() (arrayref)

introduced: 3.55 deprecated: 4.15

The data method returns a Venus::Text::Pod object using "file" for parsing the test specification.

data() (Venus::Text::Pod)

introduced: 3.55 deprecated: 4.15

The execute method dispatches to the execute_data_for_${name} method indictated by the first argument and returns the result. Returns an arrayref in scalar context, and a list in list context.

execute(string $name, any @args) (boolean)

introduced: 3.55 deprecated: 4.15

The execute_test_for_abstract method tests a documentation block for the abstract section and returns the result.

execute_test_for_abstract() (arrayref)

introduced: 3.55 deprecated: 4.15

The execute_test_for_attribute method tests a documentation block for the attribute $name section and returns the result.

execute_test_for_attribute(string $name) (arrayref)

introduced: 3.55 deprecated: 4.15

The execute_test_for_authors method tests a documentation block for the authors section and returns the result.

execute_test_for_authors() (arrayref)

introduced: 3.55 deprecated: 4.15

The execute_test_for_description method tests a documentation block for the description section and returns the result.

execute_test_for_description() (arrayref)

introduced: 3.55 deprecated: 4.15

The execute_test_for_encoding method tests a documentation block for the encoding section and returns the result.

execute_test_for_encoding() (arrayref)

introduced: 3.55 deprecated: 4.15

The execute_test_for_error method tests a documentation block for the error $name section and returns the result.

execute_test_for_error(string $name) (arrayref)

introduced: 3.55 deprecated: 4.15

The execute_test_for_example method tests a documentation block for the example-$number $name section and returns the result.

execute_test_for_example(number $numberm string $name) (arrayref)

introduced: 3.55 deprecated: 4.15

The execute_test_for_feature method tests a documentation block for the feature $name section and returns the result.

execute_test_for_feature(string $name) (arrayref)

introduced: 3.55 deprecated: 4.15

=example-1 execute_test_for_feature

# =feature noop
#
# This package is no particularly useful features.
#
# =cut

package main;

use Venus::Test 'test';

my $test = test 't/path/pod/example';

my $execute_test_for_feature = $test->execute_test_for_feature('noop');

# true

The execute_test_for_function method tests a documentation block for the function $name section and returns the result.

execute_test_for_function(string $name) (arrayref)

introduced: 3.55 deprecated: 4.15

=example-1 execute_test_for_function

# =function eg
#
# The eg function returns a new instance of Example.
#
# =cut
#
# =example-1 name
#
#   # given: synopsis
#
#   my $example = eg();
#
#   # "..."
#
# =cut

package main;

use Venus::Test 'test';

my $test = test 't/path/pod/example';

my $execute_test_for_function = $test->execute_test_for_function('eg');

# true

The execute_test_for_includes method tests a documentation block for the includes section and returns the result.

execute_test_for_includes() (arrayref)

introduced: 3.55 deprecated: 4.15

The execute_test_for_inherits method tests a documentation block for the inherits section and returns the result.

execute_test_for_inherits() (arrayref)

introduced: 3.55 deprecated: 4.15

=example-1 execute_test_for_inherits

# =inherits
#
# Venus::Core::Class
#
# =cut

package main;

use Venus::Test 'test';

my $test = test 't/path/pod/example';

my $execute_test_for_inherits = $test->execute_test_for_inherits;

# true

The execute_test_for_integrates method tests a documentation block for the integrates section and returns the result.

execute_test_for_integrates() (arrayref)

introduced: 3.55 deprecated: 4.15

The execute_test_for_layout method tests a documentation block for the layout section and returns the result.

execute_test_for_layout() (arrayref)

introduced: 3.55 deprecated: 4.15

The execute_test_for_libraries method tests a documentation block for the libraries section and returns the result.

execute_test_for_libraries() (arrayref)

introduced: 3.55 deprecated: 4.15

=example-1 execute_test_for_libraries

# =libraries
#
# Venus::Check
#
# =cut

package main;

use Venus::Test 'test';

my $test = test 't/path/pod/example';

my $execute_test_for_libraries = $test->execute_test_for_libraries;

# true

The execute_test_for_license method tests a documentation block for the license section and returns the result.

execute_test_for_license() (arrayref)

introduced: 3.55 deprecated: 4.15

The execute_test_for_message method tests a documentation block for the message $name section and returns the result.

execute_test_for_message(string $name) (arrayref)

introduced: 3.55 deprecated: 4.15

The execute_test_for_metadata method tests a documentation block for the metadata $name section and returns the result.

execute_test_for_metadata(string $name) (arrayref)

introduced: 3.55 deprecated: 4.15

=example-1 execute_test_for_metadata

# =method prepare
#
# The prepare method prepares for execution.
#
# =cut
#
# =metadata prepare
#
# {since => 1.2.3}
#
# =cut
#
# =example-1 prepare
#
#   # given: synopsis
#
#   my $prepare = $example->prepare;
#
#   # "..."
#
# =cut

package main;

use Venus::Test 'test';

my $test = test 't/path/pod/example';

my $execute_test_for_metadata = $test->execute_test_for_metadata('prepare');

# true

The execute_test_for_method method tests a documentation block for the method $name section and returns the result.

execute_test_for_method(string $name) (arrayref)

introduced: 3.55 deprecated: 4.15

=example-1 execute_test_for_method

# =method execute
#
# The execute method executes the logic.
#
# =cut
#
# =metadata execute
#
# {since => 1.2.3}
#
# =cut
#
# =example-1 execute
#
#   # given: synopsis
#
#   my $execute = $example->execute;
#
#   # "..."
#
# =cut

package main;

use Venus::Test 'test';

my $test = test 't/path/pod/example';

my $execute_test_for_method = $test->execute_test_for_method('execute');

# true

The execute_test_for_name method tests a documentation block for the name section and returns the result.

execute_test_for_name() (arrayref)

introduced: 3.55 deprecated: 4.15

The execute_test_for_operator method tests a documentation block for the operator $name section and returns the result.

execute_test_for_operator(string $name) (arrayref)

introduced: 3.55 deprecated: 4.15

The execute_test_for_raise method tests a documentation block for the raise $name $error $id section and returns the result.

execute_test_for_raise(string $name, string $class, string $id) (arrayref)

introduced: 4.15

=example-1 execute_test_for_raise

# =raise execute Venus::Error on.unknown
#
#   # given: synopsis
#
#   $example->operation; # throw exception
#
#   # Error (on.unknown)
#
# =cut

package main;

use Venus::Test 'test';

my $test = test 't/path/pod/example';

my $execute_test_for_raise = $test->execute_test_for_raise('execute', 'Venus::Error', 'on.unknown');

# true

The more method dispatches to the Test::More method specified by the first argument and returns its result.

more(any @args) (any)

introduced: 3.55 deprecated: 4.15

The okay method dispatches to the "ok" in Test::More operation and returns the result.

okay(any $data, string $description) (any)

introduced: 3.55 deprecated: 4.15

The okay_can method dispatches to the "can_ok" in Test::More operation and returns the result.

okay_can(string $name, string @args) (any)

introduced: 3.55 deprecated: 4.15

The okay_isa method dispatches to the "isa_ok" in Test::More operation and returns the result.

okay_isa(string $name, string $base) (any)

introduced: 3.55 deprecated: 4.15

The perform method dispatches to the perform_data_for_${name} method indictated by the first argument and returns the result. Returns an arrayref in scalar context, and a list in list context.

perform(string $name, any @args) (boolean)

introduced: 3.55 deprecated: 4.15

The perform_data_for_abstract method performs an overridable test for the abstract section and returns truthy or falsy.

perform_test_for_abstract(arrayref $data) (boolean)

introduced: 3.55 deprecated: 4.15

The perform_data_for_attribute method performs an overridable test for the attribute $name section and returns truthy or falsy.

perform_test_for_attribute(string $name, arrayref $data) (boolean)

introduced: 3.55 deprecated: 4.15

The perform_data_for_authors method performs an overridable test for the authors section and returns truthy or falsy.

perform_test_for_authors(arrayref $data) (boolean)

introduced: 3.55 deprecated: 4.15

The perform_data_for_description method performs an overridable test for the description section and returns truthy or falsy.

perform_test_for_description(arrayref $data) (boolean)

introduced: 3.55 deprecated: 4.15

The perform_data_for_encoding method performs an overridable test for the encoding section and returns truthy or falsy.

perform_test_for_encoding(arrayref $data) (boolean)

introduced: 3.55 deprecated: 4.15

The perform_data_for_error method performs an overridable test for the error $name section and returns truthy or falsy.

perform_test_for_error(arrayref $data) (boolean)

introduced: 3.55 deprecated: 4.15

The perform_data_for_example method performs an overridable test for the example-$number $name section and returns truthy or falsy.

perform_test_for_example(arrayref $data) (boolean)

introduced: 3.55 deprecated: 4.15

The perform_data_for_feature method performs an overridable test for the feature $name section and returns truthy or falsy.

perform_test_for_feature(arrayref $data) (boolean)

introduced: 3.55 deprecated: 4.15

The perform_data_for_function method performs an overridable test for the function $name section and returns truthy or falsy.

perform_test_for_function(arrayref $data) (boolean)

introduced: 3.55 deprecated: 4.15

The perform_data_for_includes method performs an overridable test for the includes section and returns truthy or falsy.

perform_test_for_includes(arrayref $data) (boolean)

introduced: 3.55 deprecated: 4.15

The perform_data_for_inherits method performs an overridable test for the inherits section and returns truthy or falsy.

perform_test_for_inherits(arrayref $data) (boolean)

introduced: 3.55 deprecated: 4.15

The perform_data_for_integrates method performs an overridable test for the integrates section and returns truthy or falsy.

perform_test_for_integrates(arrayref $data) (boolean)

introduced: 3.55 deprecated: 4.15

The perform_data_for_layout method performs an overridable test for the layout section and returns truthy or falsy.

perform_test_for_layout(arrayref $data) (boolean)

introduced: 3.55 deprecated: 4.15

The perform_data_for_libraries method performs an overridable test for the libraries section and returns truthy or falsy.

perform_test_for_libraries(arrayref $data) (boolean)

introduced: 3.55 deprecated: 4.15

The perform_data_for_license method performs an overridable test for the license section and returns truthy or falsy.

perform_test_for_license(arrayref $data) (boolean)

introduced: 3.55 deprecated: 4.15

The perform_data_for_message method performs an overridable test for the message $name section and returns truthy or falsy.

perform_test_for_message(arrayref $data) (boolean)

introduced: 3.55 deprecated: 4.15

The perform_data_for_metadata method performs an overridable test for the metadata $name section and returns truthy or falsy.

perform_test_for_metadata(arrayref $data) (boolean)

introduced: 3.55 deprecated: 4.15

The perform_data_for_method method performs an overridable test for the method $name section and returns truthy or falsy.

perform_test_for_method(arrayref $data) (boolean)

introduced: 3.55 deprecated: 4.15

The perform_data_for_name method performs an overridable test for the name section and returns truthy or falsy.

perform_test_for_name(arrayref $data) (boolean)

introduced: 3.55 deprecated: 4.15

The perform_data_for_operator method performs an overridable test for the operator $name section and returns truthy or falsy.

perform_test_for_operator(arrayref $data) (boolean)

introduced: 3.55 deprecated: 4.15

The perform_data_for_partials method performs an overridable test for the partials section and returns truthy or falsy.

perform_test_for_partials(arrayref $data) (boolean)

introduced: 3.55 deprecated: 4.15

The perform_data_for_project method performs an overridable test for the project section and returns truthy or falsy.

perform_test_for_project(arrayref $data) (boolean)

introduced: 3.55 deprecated: 4.15

The perform_data_for_signature method performs an overridable test for the signature $name section and returns truthy or falsy.

perform_test_for_signature(arrayref $data) (boolean)

introduced: 3.55 deprecated: 4.15

The perform_data_for_synopsis method performs an overridable test for the synopsis section and returns truthy or falsy.

perform_test_for_synopsis(arrayref $data) (boolean)

introduced: 3.55 deprecated: 4.15

The perform_data_for_tagline method performs an overridable test for the tagline section and returns truthy or falsy.

perform_test_for_tagline(arrayref $data) (boolean)

introduced: 3.55 deprecated: 4.15

The perform_data_for_version method performs an overridable test for the version section and returns truthy or falsy.

perform_test_for_version(arrayref $data) (boolean)

introduced: 3.55 deprecated: 4.15

The present method dispatches to the present_data_for_${name} method indictated by the first argument and returns the result. Returns an arrayref in scalar context, and a list in list context.

present(string $name, any @args) (string)

introduced: 3.55 deprecated: 4.15

NAME

Venus::Test - Test Class

The present_data_for_abstract method builds a documentation block for the abstract section and returns it as a string.

present_data_for_abstract() (arrayref)

introduced: 3.55 deprecated: 4.15

ABSTRACT

Example Test Documentation

The present_data_for_attribute method builds a documentation block for the attribute $name section and returns it as a string.

present_data_for_attribute(string $name) (arrayref)

introduced: 3.55 deprecated: 4.15

name

The name attribute is read-write, optional, and holds a string.

name example 1
# given: synopsis

my $name = $example->name;

# "..."

The present_data_for_authors method builds a documentation block for the authors section and returns it as a string.

present_data_for_authors() (arrayref)

introduced: 3.55 deprecated: 4.15

AUTHORS

Awncorp, awncorp@cpan.org

The present_data_for_description method builds a documentation block for the description section and returns it as a string.

present_data_for_description() (arrayref)

introduced: 3.55 deprecated: 4.15

DESCRIPTION

This package provides an example class.

The present_data_for_encoding method builds a documentation block for the encoding section and returns it as a string.

present_data_for_encoding() (arrayref)

introduced: 3.55 deprecated: 4.15

The present_data_for_error method builds a documentation block for the error $name section and returns it as a string.

present_data_for_error(string $name) (arrayref)

introduced: 3.55 deprecated: 4.15

error: error_on_unknown

This package may raise an error_on_unknown error.

example 1

# given: synopsis

my $error = $example->catch('error', {
  with => 'error_on_unknown',
});

# "..."

=back|;

$result
});

The present_data_for_example method builds a documentation block for the example-$number $name section and returns it as a string.

present_data_for_example(number $numberm string $name) (arrayref)

introduced: 3.55 deprecated: 4.15

name example 1
# given: synopsis

my $name = $example->name;

# "..."

=back|;

$result
});

The present_data_for_feature method builds a documentation block for the feature $name section and returns it as a string.

present_data_for_feature(string $name) (arrayref)

introduced: 3.55 deprecated: 4.15

=example-1 present_data_for_feature

# =feature noop
#
# This package is no particularly useful features.
#
# =cut

package main;

use Venus::Test 'test';

my $test = test 't/path/pod/example';

my $present_data_for_feature = $test->present_data_for_feature('noop');

# =over 4
#
# =item noop
#
# This package is no particularly useful features.
#
# =back
noop

This package is no particularly useful features.

=back';

$result
});

The present_data_for_function method builds a documentation block for the function $name section and returns it as a string.

present_data_for_function(string $name) (arrayref)

introduced: 3.55 deprecated: 4.15

=example-1 present_data_for_function

# =function eg
#
# The eg function returns a new instance of Example.
#
# =cut
#
# =example-1 name
#
#   # given: synopsis
#
#   my $example = eg();
#
#   # "..."
#
# =cut

package main;

use Venus::Test 'test';

my $test = test 't/path/pod/example';

my $present_data_for_function = $test->present_data_for_function('eg');

# =head2 eg
#
# The eg function returns a new instance of Example.
#
# =cut

eg

The eg function returns a new instance of Example.

The present_data_for_includes method builds a documentation block for the includes section and returns it as a string.

present_data_for_includes() (arrayref)

introduced: 3.55 deprecated: 4.15

The present_data_for_inherits method builds a documentation block for the inherits section and returns it as a string.

present_data_for_inherits() (arrayref)

introduced: 3.55 deprecated: 4.15

=example-1 present_data_for_inherits

# =inherits
#
# Venus::Core::Class
#
# =cut

package main;

use Venus::Test 'test';

my $test = test 't/path/pod/example';

my $present_data_for_inherits = $test->present_data_for_inherits;

# =head1 INHERITS
#
# This package inherits behaviors from:
#
# L<Venus::Core::Class>
#
# =cut

INHERITS

This package inherits behaviors from:

Venus::Core::Class

The present_data_for_integrates method builds a documentation block for the integrates section and returns it as a string.

present_data_for_integrates() (arrayref)

introduced: 3.55 deprecated: 4.15

INTEGRATES

This package integrates behaviors from:

Venus::Role::Catchable

Venus::Role::Throwable

The present_data_for_layout method builds a documentation block for the layout section and returns it as a string.

present_data_for_layout() (arrayref)

introduced: 3.55 deprecated: 4.15

The present_data_for_libraries method builds a documentation block for the libraries section and returns it as a string.

present_data_for_libraries() (arrayref)

introduced: 3.55 deprecated: 4.15

=example-1 present_data_for_libraries

# =libraries
#
# Venus::Check
#
# =cut

package main;

use Venus::Test 'test';

my $test = test 't/path/pod/example';

my $present_data_for_libraries = $test->present_data_for_libraries;

# =head1 LIBRARIES
#
# This package uses type constraints from:
#
# L<Venus::Check>
#
# =cut

LIBRARIES

This package uses type constraints from:

Venus::Check

The present_data_for_license method builds a documentation block for the license section and returns it as a string.

present_data_for_license() (arrayref)

introduced: 3.55 deprecated: 4.15

LICENSE

No license granted.

The present_data_for_message method builds a documentation block for the message $name section and returns it as a string.

present_data_for_message(string $name) (arrayref)

introduced: 3.55 deprecated: 4.15

accept

The accept message represents acceptance.

example 1

# given: synopsis

my $accept = $example->accept;

# "..."

=back';

$result
});

The present_data_for_metadata method builds a documentation block for the metadata $name section and returns it as a string.

present_data_for_metadata(string $name) (arrayref)

introduced: 3.55 deprecated: 4.15

=example-1 present_data_for_metadata

# =method prepare
#
# The prepare method prepares for execution.
#
# =cut
#
# =metadata prepare
#
# {since => 1.2.3}
#
# =cut
#
# =example-1 prepare
#
#   # given: synopsis
#
#   my $prepare = $example->prepare;
#
#   # "..."
#
# =cut

package main;

use Venus::Test 'test';

my $test = test 't/path/pod/example';

my $present_data_for_metadata = $test->present_data_for_metadata('prepare');

# undef

The present_data_for_method method builds a documentation block for the method $name section and returns it as a string.

present_data_for_method(string $name) (arrayref)

introduced: 3.55 deprecated: 4.15

=example-1 present_data_for_method

# =method execute
#
# The execute method executes the logic.
#
# =cut
#
# =metadata execute
#
# {since => 1.2.3}
#
# =cut
#
# =example-1 execute
#
#   # given: synopsis
#
#   my $execute = $example->execute;
#
#   # "..."
#
# =cut

package main;

use Venus::Test 'test';

my $test = test 't/path/pod/example';

my $present_data_for_method = $test->present_data_for_method('execute');

# =head2 execute
#
#   execute() (boolean)
#
# The execute method executes the logic.
#
# I<Since C<1.2.3>>
#
# =over 4
#
# =item execute example 1
#
#   # given: synopsis
#
#   my $execute = $example->execute;
#
#   # "..."
#
# =back
#
# =cut

execute

execute() (boolean)

The execute method executes the logic.

Since 1.2.3

execute example 1
# given: synopsis

my $execute = $example->execute;

# "..."
may raise Venus::Error on.unknown
# given: synopsis

$example->execute; # throw exception

# Error (on.unknown)

The present_data_for_name method builds a documentation block for the name section and returns it as a string.

present_data_for_name() (arrayref)

introduced: 3.55 deprecated: 4.15

NAME

Example - Example Class

The present_data_for_operator method builds a documentation block for the operator $name section and returns it as a string.

present_data_for_operator(string $name) (arrayref)

introduced: 3.55 deprecated: 4.15

operation: ("")

This package overloads the "" operator.

example 1

# given: synopsis

my $string = "$example";

# "..."

=back';

$result
});
package main;

use Venus::Test;

my $test = Venus::Test->new('t/data/no-name.t');

# Error! (on.new)

t/Venus.t: present: authors t/Venus.t: present: license

871 POD Errors

The following errors were encountered while parsing the POD:

Around line 14:

Unknown directive: =name

Around line 22:

Unknown directive: =tagline

Around line 30:

Unknown directive: =abstract

Around line 38:

Unknown directive: =includes

Around line 147:

Unknown directive: =synopsis

Around line 175:

Unknown directive: =description

Around line 1016:

Unknown directive: =inherits

Around line 1024:

Unknown directive: =integrates

Around line 1033:

Unknown directive: =attribute

Around line 1037:

Unknown directive: =signature

Around line 1041:

Unknown directive: =metadata

Around line 1057:

=cut found outside a pod block. Skipping to next block.

Around line 1079:

=cut found outside a pod block. Skipping to next block.

Around line 1089:

Unknown directive: =function

Around line 1094:

Unknown directive: =signature

Around line 1098:

Unknown directive: =metadata

Around line 1124:

Unknown directive: =method

Around line 1129:

Unknown directive: =signature

Around line 1133:

Unknown directive: =metadata

Around line 1149:

=cut found outside a pod block. Skipping to next block.

Around line 1164:

Unknown directive: =method

Around line 1169:

Unknown directive: =signature

Around line 1173:

Unknown directive: =metadata

Around line 1189:

=cut found outside a pod block. Skipping to next block.

Around line 1199:

Unknown directive: =method

Around line 1204:

Unknown directive: =signature

Around line 1208:

Unknown directive: =metadata

Around line 1224:

=cut found outside a pod block. Skipping to next block.

Around line 1234:

Unknown directive: =method

Around line 1239:

Unknown directive: =signature

Around line 1243:

Unknown directive: =metadata

Around line 1259:

=cut found outside a pod block. Skipping to next block.

Around line 1280:

=cut found outside a pod block. Skipping to next block.

Around line 1304:

=cut found outside a pod block. Skipping to next block.

Around line 1328:

=cut found outside a pod block. Skipping to next block.

Around line 1339:

Unknown directive: =method

Around line 1344:

Unknown directive: =signature

Around line 1348:

Unknown directive: =metadata

Around line 1364:

=cut found outside a pod block. Skipping to next block.

Around line 1375:

Unknown directive: =method

Around line 1380:

Unknown directive: =signature

Around line 1384:

Unknown directive: =metadata

Around line 1400:

=cut found outside a pod block. Skipping to next block.

Around line 1420:

=cut found outside a pod block. Skipping to next block.

Around line 1430:

Unknown directive: =method

Around line 1434:

Unknown directive: =signature

Around line 1438:

Unknown directive: =metadata

Around line 1454:

=cut found outside a pod block. Skipping to next block.

Around line 1474:

=cut found outside a pod block. Skipping to next block.

Around line 1495:

=cut found outside a pod block. Skipping to next block.

Around line 1506:

Unknown directive: =method

Around line 1511:

Unknown directive: =signature

Around line 1515:

Unknown directive: =metadata

Around line 1531:

=cut found outside a pod block. Skipping to next block.

Around line 1541:

Unknown directive: =method

Around line 1546:

Unknown directive: =signature

Around line 1550:

Unknown directive: =metadata

Around line 1566:

=cut found outside a pod block. Skipping to next block.

Around line 1598:

Unknown directive: =method

Around line 1603:

Unknown directive: =signature

Around line 1607:

Unknown directive: =metadata

Around line 1623:

=cut found outside a pod block. Skipping to next block.

Around line 1633:

Unknown directive: =method

Around line 1638:

Unknown directive: =signature

Around line 1642:

Unknown directive: =metadata

Around line 1658:

=cut found outside a pod block. Skipping to next block.

Around line 1673:

Unknown directive: =method

Around line 1678:

Unknown directive: =signature

Around line 1682:

Unknown directive: =metadata

Around line 1698:

=cut found outside a pod block. Skipping to next block.

Around line 1709:

Unknown directive: =method

Around line 1737:

Unknown directive: =signature

Around line 1741:

Unknown directive: =metadata

Around line 1757:

=cut found outside a pod block. Skipping to next block.

Around line 1779:

=cut found outside a pod block. Skipping to next block.

Around line 1804:

=cut found outside a pod block. Skipping to next block.

Around line 1828:

=cut found outside a pod block. Skipping to next block.

Around line 1851:

=cut found outside a pod block. Skipping to next block.

Around line 1873:

=cut found outside a pod block. Skipping to next block.

Around line 1898:

=cut found outside a pod block. Skipping to next block.

Around line 1922:

=cut found outside a pod block. Skipping to next block.

Around line 1945:

=cut found outside a pod block. Skipping to next block.

Around line 1967:

=cut found outside a pod block. Skipping to next block.

Around line 1992:

=cut found outside a pod block. Skipping to next block.

Around line 2016:

=cut found outside a pod block. Skipping to next block.

Around line 2039:

=cut found outside a pod block. Skipping to next block.

Around line 2061:

=cut found outside a pod block. Skipping to next block.

Around line 2086:

=cut found outside a pod block. Skipping to next block.

Around line 2110:

=cut found outside a pod block. Skipping to next block.

Around line 2123:

Unknown directive: =method

Around line 2127:

Unknown directive: =signature

Around line 2131:

Unknown directive: =metadata

Around line 2147:

=cut found outside a pod block. Skipping to next block.

Around line 2156:

Unknown directive: =method

Around line 2160:

Unknown directive: =signature

Around line 2164:

Unknown directive: =metadata

Around line 2180:

=cut found outside a pod block. Skipping to next block.

Around line 2191:

Unknown directive: =method

Around line 2196:

Unknown directive: =signature

Around line 2200:

Unknown directive: =metadata

Around line 2218:

=cut found outside a pod block. Skipping to next block.

Around line 2229:

Unknown directive: =method

Around line 2235:

Unknown directive: =signature

Around line 2239:

Unknown directive: =metadata

Around line 2255:

=cut found outside a pod block. Skipping to next block.

Around line 2265:

Unknown directive: =method

Around line 2269:

Unknown directive: =signature

Around line 2273:

Unknown directive: =metadata

Around line 2289:

=cut found outside a pod block. Skipping to next block.

Around line 2298:

Unknown directive: =method

Around line 2302:

Unknown directive: =signature

Around line 2306:

Unknown directive: =metadata

Around line 2322:

=cut found outside a pod block. Skipping to next block.

Around line 2331:

Unknown directive: =method

Around line 2335:

Unknown directive: =signature

Around line 2339:

Unknown directive: =metadata

Around line 2355:

=cut found outside a pod block. Skipping to next block.

Around line 2366:

Unknown directive: =method

Around line 2371:

Unknown directive: =signature

Around line 2375:

Unknown directive: =metadata

Around line 2391:

=cut found outside a pod block. Skipping to next block.

Around line 2404:

Unknown directive: =method

Around line 2409:

Unknown directive: =signature

Around line 2413:

Unknown directive: =metadata

Around line 2429:

=cut found outside a pod block. Skipping to next block.

Around line 2442:

Unknown directive: =method

Around line 2447:

Unknown directive: =signature

Around line 2451:

Unknown directive: =metadata

Around line 2467:

=cut found outside a pod block. Skipping to next block.

Around line 2476:

Unknown directive: =method

Around line 2481:

Unknown directive: =signature

Around line 2485:

Unknown directive: =metadata

Around line 2501:

=cut found outside a pod block. Skipping to next block.

Around line 2512:

Unknown directive: =method

Around line 2516:

Unknown directive: =signature

Around line 2520:

Unknown directive: =metadata

Around line 2536:

=cut found outside a pod block. Skipping to next block.

Around line 2547:

Unknown directive: =method

Around line 2552:

Unknown directive: =signature

Around line 2556:

Unknown directive: =metadata

Around line 2582:

=cut found outside a pod block. Skipping to next block.

Around line 2592:

Unknown directive: =method

Around line 2597:

Unknown directive: =signature

Around line 2601:

Unknown directive: =metadata

Around line 2617:

=cut found outside a pod block. Skipping to next block.

Around line 2629:

Unknown directive: =method

Around line 2633:

Unknown directive: =signature

Around line 2637:

Unknown directive: =metadata

Around line 2653:

=cut found outside a pod block. Skipping to next block.

Around line 2664:

Unknown directive: =method

Around line 2669:

Unknown directive: =signature

Around line 2673:

Unknown directive: =metadata

Around line 2689:

=cut found outside a pod block. Skipping to next block.

Around line 2700:

Unknown directive: =method

Around line 2705:

Unknown directive: =signature

Around line 2709:

Unknown directive: =metadata

Around line 2725:

=cut found outside a pod block. Skipping to next block.

Around line 2747:

=cut found outside a pod block. Skipping to next block.

Around line 2759:

Unknown directive: =method

Around line 2764:

Unknown directive: =signature

Around line 2768:

Unknown directive: =metadata

Around line 2786:

=cut found outside a pod block. Skipping to next block.

Around line 2795:

Unknown directive: =method

Around line 2799:

Unknown directive: =signature

Around line 2803:

Unknown directive: =metadata

Around line 2819:

=cut found outside a pod block. Skipping to next block.

Around line 2830:

Unknown directive: =method

Around line 2835:

Unknown directive: =signature

Around line 2839:

Unknown directive: =metadata

Around line 2855:

=cut found outside a pod block. Skipping to next block.

Around line 2864:

Unknown directive: =method

Around line 2869:

Unknown directive: =signature

Around line 2873:

Unknown directive: =metadata

Around line 2889:

=cut found outside a pod block. Skipping to next block.

Around line 2898:

Unknown directive: =method

Around line 2903:

Unknown directive: =signature

Around line 2907:

Unknown directive: =metadata

Around line 2927:

=cut found outside a pod block. Skipping to next block.

Around line 2938:

Unknown directive: =method

Around line 2943:

Unknown directive: =signature

Around line 2947:

Unknown directive: =metadata

Around line 2963:

=cut found outside a pod block. Skipping to next block.

Around line 2972:

Unknown directive: =method

Around line 2977:

Unknown directive: =signature

Around line 2981:

Unknown directive: =metadata

Around line 2997:

=cut found outside a pod block. Skipping to next block.

Around line 3006:

Unknown directive: =method

Around line 3011:

Unknown directive: =signature

Around line 3015:

Unknown directive: =metadata

Around line 3033:

=cut found outside a pod block. Skipping to next block.

Around line 3042:

Unknown directive: =method

Around line 3047:

Unknown directive: =signature

Around line 3051:

Unknown directive: =metadata

Around line 3067:

=cut found outside a pod block. Skipping to next block.

Around line 3076:

Unknown directive: =method

Around line 3081:

Unknown directive: =signature

Around line 3085:

Unknown directive: =metadata

Around line 3101:

=cut found outside a pod block. Skipping to next block.

Around line 3110:

Unknown directive: =method

Around line 3115:

Unknown directive: =signature

Around line 3119:

Unknown directive: =metadata

Around line 3135:

=cut found outside a pod block. Skipping to next block.

Around line 3144:

Unknown directive: =method

Around line 3149:

Unknown directive: =signature

Around line 3153:

Unknown directive: =metadata

Around line 3169:

=cut found outside a pod block. Skipping to next block.

Around line 3178:

Unknown directive: =method

Around line 3183:

Unknown directive: =signature

Around line 3187:

Unknown directive: =metadata

Around line 3203:

=cut found outside a pod block. Skipping to next block.

Around line 3212:

Unknown directive: =method

Around line 3217:

Unknown directive: =signature

Around line 3221:

Unknown directive: =metadata

Around line 3237:

=cut found outside a pod block. Skipping to next block.

Around line 3246:

Unknown directive: =method

Around line 3250:

Unknown directive: =signature

Around line 3254:

Unknown directive: =metadata

Around line 3270:

=cut found outside a pod block. Skipping to next block.

Around line 3279:

Unknown directive: =method

Around line 3284:

Unknown directive: =signature

Around line 3288:

Unknown directive: =metadata

Around line 3305:

=cut found outside a pod block. Skipping to next block.

Around line 3315:

Unknown directive: =method

Around line 3319:

Unknown directive: =signature

Around line 3323:

Unknown directive: =metadata

Around line 3339:

=cut found outside a pod block. Skipping to next block.

Around line 3348:

Unknown directive: =method

Around line 3353:

Unknown directive: =signature

Around line 3357:

Unknown directive: =metadata

Around line 3375:

=cut found outside a pod block. Skipping to next block.

Around line 3384:

Unknown directive: =method

Around line 3389:

Unknown directive: =signature

Around line 3393:

Unknown directive: =metadata

Around line 3409:

=cut found outside a pod block. Skipping to next block.

Around line 3418:

Unknown directive: =method

Around line 3423:

Unknown directive: =signature

Around line 3427:

Unknown directive: =metadata

Around line 3445:

=cut found outside a pod block. Skipping to next block.

Around line 3454:

Unknown directive: =method

Around line 3459:

Unknown directive: =signature

Around line 3463:

Unknown directive: =metadata

Around line 3480:

=cut found outside a pod block. Skipping to next block.

Around line 3489:

Unknown directive: =method

Around line 3493:

Unknown directive: =signature

Around line 3497:

Unknown directive: =metadata

Around line 3513:

=cut found outside a pod block. Skipping to next block.

Around line 3522:

Unknown directive: =method

Around line 3527:

Unknown directive: =signature

Around line 3531:

Unknown directive: =metadata

Around line 3547:

=cut found outside a pod block. Skipping to next block.

Around line 3556:

Unknown directive: =method

Around line 3561:

Unknown directive: =signature

Around line 3565:

Unknown directive: =metadata

Around line 3581:

=cut found outside a pod block. Skipping to next block.

Around line 3590:

Unknown directive: =method

Around line 3595:

Unknown directive: =signature

Around line 3599:

Unknown directive: =metadata

Around line 3615:

=cut found outside a pod block. Skipping to next block.

Around line 3624:

Unknown directive: =method

Around line 3629:

Unknown directive: =signature

Around line 3633:

Unknown directive: =metadata

Around line 3650:

=cut found outside a pod block. Skipping to next block.

Around line 3659:

Unknown directive: =method

Around line 3663:

Unknown directive: =signature

Around line 3667:

Unknown directive: =metadata

Around line 3683:

=cut found outside a pod block. Skipping to next block.

Around line 3692:

Unknown directive: =method

Around line 3697:

Unknown directive: =signature

Around line 3701:

Unknown directive: =metadata

Around line 3717:

=cut found outside a pod block. Skipping to next block.

Around line 3726:

Unknown directive: =method

Around line 3731:

Unknown directive: =signature

Around line 3735:

Unknown directive: =metadata

Around line 3751:

=cut found outside a pod block. Skipping to next block.

Around line 3760:

Unknown directive: =method

Around line 3764:

Unknown directive: =signature

Around line 3768:

Unknown directive: =metadata

Around line 3784:

=cut found outside a pod block. Skipping to next block.

Around line 3793:

Unknown directive: =method

Around line 3797:

Unknown directive: =signature

Around line 3801:

Unknown directive: =metadata

Around line 3817:

=cut found outside a pod block. Skipping to next block.

Around line 3826:

Unknown directive: =method

Around line 3830:

Unknown directive: =signature

Around line 3834:

Unknown directive: =metadata

Around line 3850:

=cut found outside a pod block. Skipping to next block.

Around line 3859:

Unknown directive: =method

Around line 3863:

Unknown directive: =signature

Around line 3867:

Unknown directive: =metadata

Around line 3883:

=cut found outside a pod block. Skipping to next block.

Around line 3892:

Unknown directive: =method

Around line 3896:

Unknown directive: =signature

Around line 3900:

Unknown directive: =metadata

Around line 3916:

=cut found outside a pod block. Skipping to next block.

Around line 3925:

Unknown directive: =method

Around line 3929:

Unknown directive: =signature

Around line 3933:

Unknown directive: =metadata

Around line 3949:

=cut found outside a pod block. Skipping to next block.

Around line 3958:

Unknown directive: =method

Around line 3962:

Unknown directive: =signature

Around line 3966:

Unknown directive: =metadata

Around line 3982:

=cut found outside a pod block. Skipping to next block.

Around line 3991:

Unknown directive: =method

Around line 3995:

Unknown directive: =signature

Around line 3999:

Unknown directive: =metadata

Around line 4015:

=cut found outside a pod block. Skipping to next block.

Around line 4024:

Unknown directive: =method

Around line 4028:

Unknown directive: =signature

Around line 4032:

Unknown directive: =metadata

Around line 4048:

=cut found outside a pod block. Skipping to next block.

Around line 4057:

Unknown directive: =method

Around line 4061:

Unknown directive: =signature

Around line 4065:

Unknown directive: =metadata

Around line 4081:

=cut found outside a pod block. Skipping to next block.

Around line 4090:

Unknown directive: =method

Around line 4094:

Unknown directive: =signature

Around line 4098:

Unknown directive: =metadata

Around line 4114:

=cut found outside a pod block. Skipping to next block.

Around line 4123:

Unknown directive: =method

Around line 4127:

Unknown directive: =signature

Around line 4131:

Unknown directive: =metadata

Around line 4147:

=cut found outside a pod block. Skipping to next block.

Around line 4156:

Unknown directive: =method

Around line 4160:

Unknown directive: =signature

Around line 4164:

Unknown directive: =metadata

Around line 4180:

=cut found outside a pod block. Skipping to next block.

Around line 4189:

Unknown directive: =method

Around line 4193:

Unknown directive: =signature

Around line 4197:

Unknown directive: =metadata

Around line 4213:

=cut found outside a pod block. Skipping to next block.

Around line 4222:

Unknown directive: =method

Around line 4226:

Unknown directive: =signature

Around line 4230:

Unknown directive: =metadata

Around line 4246:

=cut found outside a pod block. Skipping to next block.

Around line 4255:

Unknown directive: =method

Around line 4259:

Unknown directive: =signature

Around line 4263:

Unknown directive: =metadata

Around line 4279:

=cut found outside a pod block. Skipping to next block.

Around line 4288:

Unknown directive: =method

Around line 4292:

Unknown directive: =signature

Around line 4296:

Unknown directive: =metadata

Around line 4312:

=cut found outside a pod block. Skipping to next block.

Around line 4321:

Unknown directive: =method

Around line 4325:

Unknown directive: =signature

Around line 4329:

Unknown directive: =metadata

Around line 4345:

=cut found outside a pod block. Skipping to next block.

Around line 4354:

Unknown directive: =method

Around line 4358:

Unknown directive: =signature

Around line 4362:

Unknown directive: =metadata

Around line 4378:

=cut found outside a pod block. Skipping to next block.

Around line 4387:

Unknown directive: =method

Around line 4391:

Unknown directive: =signature

Around line 4395:

Unknown directive: =metadata

Around line 4411:

=cut found outside a pod block. Skipping to next block.

Around line 4420:

Unknown directive: =method

Around line 4424:

Unknown directive: =signature

Around line 4428:

Unknown directive: =metadata

Around line 4444:

=cut found outside a pod block. Skipping to next block.

Around line 4453:

Unknown directive: =method

Around line 4457:

Unknown directive: =signature

Around line 4461:

Unknown directive: =metadata

Around line 4477:

=cut found outside a pod block. Skipping to next block.

Around line 4486:

Unknown directive: =method

Around line 4490:

Unknown directive: =signature

Around line 4494:

Unknown directive: =metadata

Around line 4510:

=cut found outside a pod block. Skipping to next block.

Around line 4519:

Unknown directive: =method

Around line 4523:

Unknown directive: =signature

Around line 4527:

Unknown directive: =metadata

Around line 4543:

=cut found outside a pod block. Skipping to next block.

Around line 4552:

Unknown directive: =method

Around line 4556:

Unknown directive: =signature

Around line 4560:

Unknown directive: =metadata

Around line 4576:

=cut found outside a pod block. Skipping to next block.

Around line 4586:

Unknown directive: =method

Around line 4590:

Unknown directive: =signature

Around line 4594:

Unknown directive: =metadata

Around line 4610:

=cut found outside a pod block. Skipping to next block.

Around line 4620:

Unknown directive: =method

Around line 4624:

Unknown directive: =signature

Around line 4628:

Unknown directive: =metadata

Around line 4644:

=cut found outside a pod block. Skipping to next block.

Around line 4654:

Unknown directive: =method

Around line 4658:

Unknown directive: =signature

Around line 4662:

Unknown directive: =metadata

Around line 4678:

=cut found outside a pod block. Skipping to next block.

Around line 4688:

Unknown directive: =method

Around line 4692:

Unknown directive: =signature

Around line 4696:

Unknown directive: =metadata

Around line 4712:

=cut found outside a pod block. Skipping to next block.

Around line 4722:

Unknown directive: =method

Around line 4726:

Unknown directive: =signature

Around line 4730:

Unknown directive: =metadata

Around line 4746:

=cut found outside a pod block. Skipping to next block.

Around line 4756:

Unknown directive: =method

Around line 4760:

Unknown directive: =signature

Around line 4764:

Unknown directive: =metadata

Around line 4780:

=cut found outside a pod block. Skipping to next block.

Around line 4790:

Unknown directive: =method

Around line 4794:

Unknown directive: =signature

Around line 4798:

Unknown directive: =metadata

Around line 4814:

=cut found outside a pod block. Skipping to next block.

Around line 4824:

Unknown directive: =method

Around line 4828:

Unknown directive: =signature

Around line 4832:

Unknown directive: =metadata

Around line 4848:

=cut found outside a pod block. Skipping to next block.

Around line 4858:

Unknown directive: =method

Around line 4862:

Unknown directive: =signature

Around line 4866:

Unknown directive: =metadata

Around line 4882:

=cut found outside a pod block. Skipping to next block.

Around line 4892:

Unknown directive: =method

Around line 4896:

Unknown directive: =signature

Around line 4900:

Unknown directive: =metadata

Around line 4916:

=cut found outside a pod block. Skipping to next block.

Around line 4926:

Unknown directive: =method

Around line 4930:

Unknown directive: =signature

Around line 4934:

Unknown directive: =metadata

Around line 4950:

=cut found outside a pod block. Skipping to next block.

Around line 4960:

Unknown directive: =method

Around line 4964:

Unknown directive: =signature

Around line 4968:

Unknown directive: =metadata

Around line 4984:

=cut found outside a pod block. Skipping to next block.

Around line 4994:

Unknown directive: =method

Around line 4998:

Unknown directive: =signature

Around line 5002:

Unknown directive: =metadata

Around line 5018:

=cut found outside a pod block. Skipping to next block.

Around line 5028:

Unknown directive: =method

Around line 5032:

Unknown directive: =signature

Around line 5036:

Unknown directive: =metadata

Around line 5052:

=cut found outside a pod block. Skipping to next block.

Around line 5062:

Unknown directive: =method

Around line 5066:

Unknown directive: =signature

Around line 5070:

Unknown directive: =metadata

Around line 5086:

=cut found outside a pod block. Skipping to next block.

Around line 5096:

Unknown directive: =method

Around line 5100:

Unknown directive: =signature

Around line 5104:

Unknown directive: =metadata

Around line 5120:

=cut found outside a pod block. Skipping to next block.

Around line 5130:

Unknown directive: =method

Around line 5134:

Unknown directive: =signature

Around line 5138:

Unknown directive: =metadata

Around line 5154:

=cut found outside a pod block. Skipping to next block.

Around line 5164:

Unknown directive: =feature

Around line 5170:

Unknown directive: =signature

Around line 5174:

Unknown directive: =metadata

Around line 5191:

=cut found outside a pod block. Skipping to next block.

Around line 5212:

=cut found outside a pod block. Skipping to next block.

Around line 5223:

Unknown directive: =feature

Around line 5229:

Unknown directive: =signature

Around line 5233:

Unknown directive: =metadata

Around line 5258:

=cut found outside a pod block. Skipping to next block.

Around line 5287:

=cut found outside a pod block. Skipping to next block.

Around line 5298:

Unknown directive: =feature

Around line 5304:

Unknown directive: =signature

Around line 5308:

Unknown directive: =metadata

Around line 5343:

=cut found outside a pod block. Skipping to next block.

Around line 5382:

=cut found outside a pod block. Skipping to next block.

Around line 5393:

Unknown directive: =feature

Around line 5399:

Unknown directive: =signature

Around line 5403:

Unknown directive: =metadata

Around line 5428:

=cut found outside a pod block. Skipping to next block.

Around line 5457:

=cut found outside a pod block. Skipping to next block.

Around line 5468:

Unknown directive: =feature

Around line 5474:

Unknown directive: =signature

Around line 5478:

Unknown directive: =metadata

Around line 5503:

=cut found outside a pod block. Skipping to next block.

Around line 5532:

=cut found outside a pod block. Skipping to next block.

Around line 5543:

Unknown directive: =feature

Around line 5549:

Unknown directive: =signature

Around line 5553:

Unknown directive: =metadata

Around line 5578:

=cut found outside a pod block. Skipping to next block.

Around line 5607:

=cut found outside a pod block. Skipping to next block.

Around line 5618:

Unknown directive: =feature

Around line 5624:

Unknown directive: =signature

Around line 5628:

Unknown directive: =metadata

Around line 5665:

=cut found outside a pod block. Skipping to next block.

Around line 5706:

=cut found outside a pod block. Skipping to next block.

Around line 5717:

Unknown directive: =feature

Around line 5723:

Unknown directive: =signature

Around line 5727:

Unknown directive: =metadata

Around line 5762:

=cut found outside a pod block. Skipping to next block.

Around line 5801:

=cut found outside a pod block. Skipping to next block.

Around line 5811:

Unknown directive: =feature

Around line 5817:

Unknown directive: =signature

Around line 5821:

Unknown directive: =metadata

Around line 5846:

=cut found outside a pod block. Skipping to next block.

Around line 5875:

=cut found outside a pod block. Skipping to next block.

Around line 5886:

Unknown directive: =feature

Around line 5892:

Unknown directive: =signature

Around line 5896:

Unknown directive: =metadata

Around line 5931:

=cut found outside a pod block. Skipping to next block.

Around line 5970:

=cut found outside a pod block. Skipping to next block.

Around line 5981:

Unknown directive: =feature

Around line 5987:

Unknown directive: =signature

Around line 5991:

Unknown directive: =metadata

Around line 6019:

=cut found outside a pod block. Skipping to next block.

Around line 6051:

=cut found outside a pod block. Skipping to next block.

Around line 6061:

Unknown directive: =feature

Around line 6067:

Unknown directive: =signature

Around line 6071:

Unknown directive: =metadata

Around line 6096:

=cut found outside a pod block. Skipping to next block.

Around line 6125:

=cut found outside a pod block. Skipping to next block.

Around line 6136:

Unknown directive: =feature

Around line 6142:

Unknown directive: =signature

Around line 6146:

Unknown directive: =metadata

Around line 6172:

=cut found outside a pod block. Skipping to next block.

Around line 6202:

=cut found outside a pod block. Skipping to next block.

Around line 6213:

Unknown directive: =feature

Around line 6219:

Unknown directive: =signature

Around line 6223:

Unknown directive: =metadata

Around line 6254:

=cut found outside a pod block. Skipping to next block.

Around line 6289:

=cut found outside a pod block. Skipping to next block.

Around line 6300:

Unknown directive: =feature

Around line 6306:

Unknown directive: =signature

Around line 6310:

Unknown directive: =metadata

Around line 6335:

=cut found outside a pod block. Skipping to next block.

Around line 6364:

=cut found outside a pod block. Skipping to next block.

Around line 6375:

Unknown directive: =feature

Around line 6381:

Unknown directive: =signature

Around line 6385:

Unknown directive: =metadata

Around line 6410:

=cut found outside a pod block. Skipping to next block.

Around line 6439:

=cut found outside a pod block. Skipping to next block.

Around line 6450:

Unknown directive: =feature

Around line 6456:

Unknown directive: =signature

Around line 6460:

Unknown directive: =metadata

Around line 6495:

=cut found outside a pod block. Skipping to next block.

Around line 6534:

=cut found outside a pod block. Skipping to next block.

Around line 6545:

Unknown directive: =feature

Around line 6551:

Unknown directive: =signature

Around line 6555:

Unknown directive: =metadata

Around line 6596:

=cut found outside a pod block. Skipping to next block.

Around line 6641:

=cut found outside a pod block. Skipping to next block.

Around line 6652:

Unknown directive: =feature

Around line 6658:

Unknown directive: =signature

Around line 6662:

Unknown directive: =metadata

Around line 6703:

=cut found outside a pod block. Skipping to next block.

Around line 6748:

=cut found outside a pod block. Skipping to next block.

Around line 6759:

Unknown directive: =feature

Around line 6765:

Unknown directive: =signature

Around line 6769:

Unknown directive: =metadata

Around line 6794:

=cut found outside a pod block. Skipping to next block.

Around line 6823:

=cut found outside a pod block. Skipping to next block.

Around line 6834:

Unknown directive: =feature

Around line 6840:

Unknown directive: =signature

Around line 6844:

Unknown directive: =metadata

Around line 6879:

=cut found outside a pod block. Skipping to next block.

Around line 6918:

=cut found outside a pod block. Skipping to next block.

Around line 6929:

Unknown directive: =feature

Around line 6935:

Unknown directive: =signature

Around line 6939:

Unknown directive: =metadata

Around line 6965:

=cut found outside a pod block. Skipping to next block.

Around line 6995:

=cut found outside a pod block. Skipping to next block.

Around line 7006:

Unknown directive: =feature

Around line 7012:

Unknown directive: =signature

Around line 7016:

Unknown directive: =metadata

Around line 7041:

=cut found outside a pod block. Skipping to next block.

Around line 7070:

=cut found outside a pod block. Skipping to next block.

Around line 7081:

Unknown directive: =feature

Around line 7087:

Unknown directive: =signature

Around line 7091:

Unknown directive: =metadata

Around line 7138:

=cut found outside a pod block. Skipping to next block.

Around line 7189:

=cut found outside a pod block. Skipping to next block.

Around line 7200:

Unknown directive: =feature

Around line 7206:

Unknown directive: =signature

Around line 7210:

Unknown directive: =metadata

Around line 7239:

=cut found outside a pod block. Skipping to next block.

Around line 7272:

=cut found outside a pod block. Skipping to next block.

Around line 7282:

Unknown directive: =feature

Around line 7288:

Unknown directive: =signature

Around line 7292:

Unknown directive: =metadata

Around line 7317:

=cut found outside a pod block. Skipping to next block.

Around line 7346:

=cut found outside a pod block. Skipping to next block.

Around line 7357:

Unknown directive: =feature

Around line 7363:

Unknown directive: =signature

Around line 7367:

Unknown directive: =metadata

Around line 7392:

=cut found outside a pod block. Skipping to next block.

Around line 7421:

=cut found outside a pod block. Skipping to next block.

Around line 7432:

Unknown directive: =feature

Around line 7437:

Unknown directive: =signature

Around line 7441:

Unknown directive: =metadata

Around line 7458:

=cut found outside a pod block. Skipping to next block.

Around line 7469:

Unknown directive: =feature

Around line 7475:

Unknown directive: =signature

Around line 7479:

Unknown directive: =metadata

Around line 7496:

=cut found outside a pod block. Skipping to next block.

Around line 7525:

=cut found outside a pod block. Skipping to next block.

Around line 7537:

Unknown directive: =feature

Around line 7541:

Unknown directive: =signature

Around line 7545:

Unknown directive: =metadata

Around line 7570:

=cut found outside a pod block. Skipping to next block.

Around line 7581:

Unknown directive: =feature

Around line 7585:

Unknown directive: =signature

Around line 7589:

Unknown directive: =metadata

Around line 7624:

=cut found outside a pod block. Skipping to next block.

Around line 7635:

Unknown directive: =feature

Around line 7639:

Unknown directive: =signature

Around line 7643:

Unknown directive: =metadata

Around line 7668:

=cut found outside a pod block. Skipping to next block.

Around line 7679:

Unknown directive: =feature

Around line 7683:

Unknown directive: =signature

Around line 7687:

Unknown directive: =metadata

Around line 7712:

=cut found outside a pod block. Skipping to next block.

Around line 7723:

Unknown directive: =feature

Around line 7727:

Unknown directive: =signature

Around line 7731:

Unknown directive: =metadata

Around line 7756:

=cut found outside a pod block. Skipping to next block.

Around line 7767:

Unknown directive: =feature

Around line 7771:

Unknown directive: =signature

Around line 7775:

Unknown directive: =metadata

Around line 7812:

=cut found outside a pod block. Skipping to next block.

Around line 7823:

Unknown directive: =feature

Around line 7827:

Unknown directive: =signature

Around line 7831:

Unknown directive: =metadata

Around line 7866:

=cut found outside a pod block. Skipping to next block.

Around line 7877:

Unknown directive: =feature

Around line 7881:

Unknown directive: =signature

Around line 7885:

Unknown directive: =metadata

Around line 7919:

Unknown directive: =feature

Around line 7923:

Unknown directive: =signature

Around line 7927:

Unknown directive: =metadata

Around line 7971:

Unknown directive: =feature

Around line 7975:

Unknown directive: =signature

Around line 7979:

Unknown directive: =metadata

Around line 8007:

=cut found outside a pod block. Skipping to next block.

Around line 8018:

Unknown directive: =feature

Around line 8022:

Unknown directive: =signature

Around line 8026:

Unknown directive: =metadata

Around line 8060:

Unknown directive: =feature

Around line 8064:

Unknown directive: =signature

Around line 8068:

Unknown directive: =metadata

Around line 8094:

=cut found outside a pod block. Skipping to next block.

Around line 8105:

Unknown directive: =feature

Around line 8109:

Unknown directive: =signature

Around line 8113:

Unknown directive: =metadata

Around line 8144:

=cut found outside a pod block. Skipping to next block.

Around line 8155:

Unknown directive: =feature

Around line 8159:

Unknown directive: =signature

Around line 8163:

Unknown directive: =metadata

Around line 8197:

Unknown directive: =feature

Around line 8201:

Unknown directive: =signature

Around line 8205:

Unknown directive: =metadata

Around line 8230:

=cut found outside a pod block. Skipping to next block.

Around line 8241:

Unknown directive: =feature

Around line 8245:

Unknown directive: =signature

Around line 8249:

Unknown directive: =metadata

Around line 8284:

=cut found outside a pod block. Skipping to next block.

Around line 8295:

Unknown directive: =feature

Around line 8299:

Unknown directive: =signature

Around line 8303:

Unknown directive: =metadata

Around line 8353:

Unknown directive: =feature

Around line 8357:

Unknown directive: =signature

Around line 8361:

Unknown directive: =metadata

Around line 8411:

Unknown directive: =feature

Around line 8415:

Unknown directive: =signature

Around line 8419:

Unknown directive: =metadata

Around line 8444:

=cut found outside a pod block. Skipping to next block.

Around line 8450:

Unknown directive: =feature

Around line 8454:

Unknown directive: =signature

Around line 8458:

Unknown directive: =metadata

Around line 8493:

=cut found outside a pod block. Skipping to next block.

Around line 8504:

Unknown directive: =feature

Around line 8509:

Unknown directive: =signature

Around line 8513:

Unknown directive: =metadata

Around line 8550:

Unknown directive: =feature

Around line 8555:

Unknown directive: =signature

Around line 8559:

Unknown directive: =metadata

Around line 8576:

=cut found outside a pod block. Skipping to next block.

Around line 8587:

Unknown directive: =feature

Around line 8592:

Unknown directive: =signature

Around line 8596:

Unknown directive: =metadata

Around line 8613:

=cut found outside a pod block. Skipping to next block.

Around line 8633:

=cut found outside a pod block. Skipping to next block.

Around line 8643:

Unknown directive: =feature

Around line 8648:

Unknown directive: =signature

Around line 8652:

Unknown directive: =metadata

Around line 8669:

=cut found outside a pod block. Skipping to next block.

Around line 8679:

Unknown directive: =feature

Around line 8684:

Unknown directive: =signature

Around line 8688:

Unknown directive: =metadata

Around line 8706:

=cut found outside a pod block. Skipping to next block.

Around line 8716:

Unknown directive: =feature

Around line 8722:

Unknown directive: =signature

Around line 8726:

Unknown directive: =metadata

Around line 8745:

=cut found outside a pod block. Skipping to next block.

Around line 8756:

Unknown directive: =feature

Around line 8760:

Unknown directive: =signature

Around line 8764:

Unknown directive: =metadata

Around line 8801:

=cut found outside a pod block. Skipping to next block.

Around line 8815:

Unknown directive: =feature

Around line 8819:

Unknown directive: =signature

Around line 8823:

Unknown directive: =metadata

Around line 8860:

=cut found outside a pod block. Skipping to next block.

Around line 8874:

Unknown directive: =feature

Around line 8878:

Unknown directive: =signature

Around line 8882:

Unknown directive: =metadata

Around line 8919:

=cut found outside a pod block. Skipping to next block.

Around line 8933:

Unknown directive: =feature

Around line 8937:

Unknown directive: =signature

Around line 8941:

Unknown directive: =metadata

Around line 8978:

=cut found outside a pod block. Skipping to next block.

Around line 8992:

Unknown directive: =feature

Around line 8996:

Unknown directive: =signature

Around line 9000:

Unknown directive: =metadata

Around line 9037:

=cut found outside a pod block. Skipping to next block.

Around line 9051:

Unknown directive: =feature

Around line 9055:

Unknown directive: =signature

Around line 9059:

Unknown directive: =metadata

Around line 9096:

=cut found outside a pod block. Skipping to next block.

Around line 9110:

Unknown directive: =feature

Around line 9114:

Unknown directive: =signature

Around line 9118:

Unknown directive: =metadata

Around line 9155:

=cut found outside a pod block. Skipping to next block.

Around line 9169:

Unknown directive: =feature

Around line 9173:

Unknown directive: =signature

Around line 9177:

Unknown directive: =metadata

Around line 9214:

=cut found outside a pod block. Skipping to next block.

Around line 9228:

Unknown directive: =feature

Around line 9232:

Unknown directive: =signature

Around line 9236:

Unknown directive: =metadata

Around line 9273:

=cut found outside a pod block. Skipping to next block.

Around line 9287:

Unknown directive: =feature

Around line 9291:

Unknown directive: =signature

Around line 9295:

Unknown directive: =metadata

Around line 9332:

=cut found outside a pod block. Skipping to next block.

Around line 9346:

Unknown directive: =feature

Around line 9350:

Unknown directive: =signature

Around line 9354:

Unknown directive: =metadata

Around line 9391:

=cut found outside a pod block. Skipping to next block.

Around line 9405:

Unknown directive: =feature

Around line 9409:

Unknown directive: =signature

Around line 9413:

Unknown directive: =metadata

Around line 9450:

=cut found outside a pod block. Skipping to next block.

Around line 9464:

Unknown directive: =feature

Around line 9468:

Unknown directive: =signature

Around line 9472:

Unknown directive: =metadata

Around line 9509:

=cut found outside a pod block. Skipping to next block.

Around line 9523:

Unknown directive: =feature

Around line 9527:

Unknown directive: =signature

Around line 9531:

Unknown directive: =metadata

Around line 9568:

=cut found outside a pod block. Skipping to next block.

Around line 9582:

Unknown directive: =feature

Around line 9586:

Unknown directive: =signature

Around line 9590:

Unknown directive: =metadata

Around line 9627:

=cut found outside a pod block. Skipping to next block.

Around line 9641:

Unknown directive: =feature

Around line 9645:

Unknown directive: =signature

Around line 9649:

Unknown directive: =metadata

Around line 9686:

=cut found outside a pod block. Skipping to next block.

Around line 9700:

Unknown directive: =feature

Around line 9704:

Unknown directive: =signature

Around line 9708:

Unknown directive: =metadata

Around line 9745:

=cut found outside a pod block. Skipping to next block.

Around line 9759:

Unknown directive: =feature

Around line 9763:

Unknown directive: =signature

Around line 9767:

Unknown directive: =metadata

Around line 9804:

=cut found outside a pod block. Skipping to next block.

Around line 9818:

Unknown directive: =feature

Around line 9822:

Unknown directive: =signature

Around line 9826:

Unknown directive: =metadata

Around line 9863:

=cut found outside a pod block. Skipping to next block.

Around line 9877:

Unknown directive: =feature

Around line 9881:

Unknown directive: =signature

Around line 9885:

Unknown directive: =metadata

Around line 9922:

=cut found outside a pod block. Skipping to next block.

Around line 9936:

Unknown directive: =feature

Around line 9940:

Unknown directive: =signature

Around line 9944:

Unknown directive: =metadata

Around line 9981:

=cut found outside a pod block. Skipping to next block.

Around line 9995:

Unknown directive: =feature

Around line 9999:

Unknown directive: =signature

Around line 10003:

Unknown directive: =metadata

Around line 10040:

=cut found outside a pod block. Skipping to next block.

Around line 10054:

Unknown directive: =feature

Around line 10058:

Unknown directive: =signature

Around line 10062:

Unknown directive: =metadata

Around line 10099:

=cut found outside a pod block. Skipping to next block.

Around line 10113:

Unknown directive: =feature

Around line 10117:

Unknown directive: =signature

Around line 10121:

Unknown directive: =metadata

Around line 10158:

=cut found outside a pod block. Skipping to next block.

Around line 10172:

Unknown directive: =feature

Around line 10176:

Unknown directive: =signature

Around line 10180:

Unknown directive: =metadata

Around line 10217:

=cut found outside a pod block. Skipping to next block.

Around line 10231:

Unknown directive: =feature

Around line 10235:

Unknown directive: =signature

Around line 10239:

Unknown directive: =metadata

Around line 10276:

=cut found outside a pod block. Skipping to next block.

Around line 10290:

Unknown directive: =feature

Around line 10296:

Unknown directive: =signature

Around line 10300:

Unknown directive: =metadata

Around line 10321:

=cut found outside a pod block. Skipping to next block.

Around line 10337:

Unknown directive: =feature

Around line 10341:

Unknown directive: =signature

Around line 10345:

Unknown directive: =metadata

Around line 10374:

=cut found outside a pod block. Skipping to next block.

Around line 10390:

Unknown directive: =feature

Around line 10394:

Unknown directive: =signature

Around line 10398:

Unknown directive: =metadata

Around line 10449:

=cut found outside a pod block. Skipping to next block.

Around line 10477:

Unknown directive: =feature

Around line 10481:

Unknown directive: =signature

Around line 10485:

Unknown directive: =metadata

Around line 10514:

=cut found outside a pod block. Skipping to next block.

Around line 10530:

Unknown directive: =feature

Around line 10534:

Unknown directive: =signature

Around line 10538:

Unknown directive: =metadata

Around line 10567:

=cut found outside a pod block. Skipping to next block.

Around line 10583:

Unknown directive: =feature

Around line 10587:

Unknown directive: =signature

Around line 10591:

Unknown directive: =metadata

Around line 10618:

=cut found outside a pod block. Skipping to next block.

Around line 10632:

Unknown directive: =feature

Around line 10636:

Unknown directive: =signature

Around line 10640:

Unknown directive: =metadata

Around line 10693:

=cut found outside a pod block. Skipping to next block.

Around line 10721:

Unknown directive: =feature

Around line 10725:

Unknown directive: =signature

Around line 10729:

Unknown directive: =metadata

Around line 10774:

=cut found outside a pod block. Skipping to next block.

Around line 10796:

Unknown directive: =feature

Around line 10800:

Unknown directive: =signature

Around line 10804:

Unknown directive: =metadata

Around line 10851:

Unknown directive: =feature

Around line 10855:

Unknown directive: =signature

Around line 10859:

Unknown directive: =metadata

Around line 10903:

You forgot a '=back' before '=head2'

You forgot a '=back' before '=head2'

You forgot a '=back' before '=head2'

Around line 10912:

Unknown directive: =feature

Around line 10916:

Unknown directive: =signature

Around line 10920:

Unknown directive: =metadata

Around line 10948:

=cut found outside a pod block. Skipping to next block.

Around line 10959:

Unknown directive: =feature

Around line 10963:

Unknown directive: =signature

Around line 10967:

Unknown directive: =metadata

Around line 11014:

Unknown directive: =feature

Around line 11018:

Unknown directive: =signature

Around line 11022:

Unknown directive: =metadata

Around line 11056:

=cut found outside a pod block. Skipping to next block.

Around line 11076:

Unknown directive: =feature

Around line 11080:

Unknown directive: =signature

Around line 11084:

Unknown directive: =metadata

Around line 11115:

=cut found outside a pod block. Skipping to next block.

Around line 11126:

Unknown directive: =feature

Around line 11130:

Unknown directive: =signature

Around line 11134:

Unknown directive: =metadata

Around line 11181:

Unknown directive: =feature

Around line 11185:

Unknown directive: =signature

Around line 11189:

Unknown directive: =metadata

Around line 11218:

=cut found outside a pod block. Skipping to next block.

Around line 11234:

Unknown directive: =feature

Around line 11238:

Unknown directive: =signature

Around line 11242:

Unknown directive: =metadata

Around line 11291:

=cut found outside a pod block. Skipping to next block.

Around line 11317:

Unknown directive: =feature

Around line 11321:

Unknown directive: =signature

Around line 11325:

Unknown directive: =metadata

Around line 11375:

Unknown directive: =feature

Around line 11379:

Unknown directive: =signature

Around line 11383:

Unknown directive: =metadata

Around line 11449:

You forgot a '=back' before '=head2'

Around line 11486:

Unknown directive: =feature

Around line 11490:

Unknown directive: =signature

Around line 11494:

Unknown directive: =metadata

Around line 11523:

=cut found outside a pod block. Skipping to next block.

Around line 11539:

Unknown directive: =feature

Around line 11543:

Unknown directive: =signature

Around line 11547:

Unknown directive: =metadata

Around line 11596:

=cut found outside a pod block. Skipping to next block.

Around line 11603:

=over without closing =back

Around line 11622:

Unknown directive: =raise

Around line 11642:

Unknown directive: =partials