Venus
Standard Library
Standard Library for Perl 5
function: args function: array function: arrayref function: assert function: async function: atom function: await function: bool function: box function: call function: cast function: catch function: caught function: chain function: check function: clargs function: cli function: clone function: code function: config function: container function: cop function: data function: date function: docs function: enum function: error function: false function: fault function: float function: future function: gather function: hash function: hashref function: is_bool function: is_false function: is_true function: json function: list function: load function: log function: make function: match function: merge function: meta function: name function: number function: opts function: pairs function: path function: perl function: process function: proto function: puts function: raise function: random function: range function: regexp function: render function: replace function: resolve function: roll function: search function: set function: space function: schema function: string function: syscall function: template function: test function: text function: then function: throw function: true function: try function: type function: unpack function: vars function: venus function: work function: wrap function: yaml
package main;
use Venus 'catch', 'error', 'raise';
# error handling
my ($error, $result) = catch {
error;
};
# boolean keywords
if ($result) {
error;
}
# raise exceptions
if ($result) {
raise 'MyApp::Error';
}
# boolean keywords, and more!
true ne false;
This library provides an object-orientation framework and extendible standard library for Perl 5 with classes which wrap most native Perl data types. Venus has a simple modular architecture, robust library of classes, methods, and roles, supports pure-Perl autoboxing, advanced exception handling, "true" and "false" functions, package introspection, command-line options parsing, and more. This package will always automatically exports true and false keyword functions (unless existing routines of the same name already exist in the calling package or its parents), otherwise exports keyword functions as requested at import. This library requires Perl 5.18+.
+=head1 CAPABILITIES
The following is a short list of capabilities:
+=over 4
+=item *
Perl 5.18.0+
+=item *
Zero Dependencies
+=item *
Fast Object-Orientation
+=item *
Robust Standard Library
+=item *
Intuitive Value Classes
+=item *
Pure Perl Autoboxing
+=item *
Convenient Utility Classes
+=item *
Simple Package Reflection
+=item *
Flexible Exception Handling
+=item *
Composable Standards
+=item *
Pluggable (no monkeypatching)
+=item *
Proxyable Methods
+=item *
Type Assertions
+=item *
Type Coercions
+=item *
Value Casting
+=item *
Boolean Values
+=item *
Complete Documentation
+=item *
Complete Test Coverage
+=back
The args function builds and returns a Venus::Args object, or dispatches to the coderef or method provided.
args(arrayref $value, string | coderef $code, any @args) (any)
{ since => '3.10', }
The array function builds and returns a Venus::Array object, or dispatches to the coderef or method provided.
array(arrayref | hashref $value, string | coderef $code, any @args) (any)
{ since => '2.55', }
The arrayref function takes a list of arguments and returns a arrayref.
arrayref(any @args) (arrayref)
{ since => '3.10', }
=example-1 arrayref
package main;
use Venus 'arrayref';
my $arrayref = arrayref(content => 'example');
# [content => "example"]
The assert function builds a Venus::Assert object and returns the result of a "validate" in Venus::Assert operation.
assert(any $data, string $expr) (any)
{ since => '2.40', }
The async function accepts a callback and executes it asynchronously via "future" in Venus::Process. This function returns a Venus::Future object which can be fulfilled via "wait" in Venus::Future.
async(coderef $code, any @args) (Venus::Future)
{ since => '3.40', }
The atom function builds and returns a Venus::Atom object.
atom(any $value) (Venus::Atom)
{ since => '3.55', }
The await function accepts a Venus::Future object and eventually returns a value (or values) for it. The value(s) returned are the return values or emissions from the asychronous callback executed with "async" which produced the process object.
await(Venus::Future $future, number $timeout) (any)
{ since => '3.40', }
The bool function builds and returns a Venus::Boolean object.
bool(any $value) (Venus::Boolean)
{ since => '2.55', }
The box function returns a Venus::Box object for the argument provided.
box(any $data) (Venus::Box)
{ since => '2.32', }
=example-1 box
package main;
use Venus 'box';
my $box = box({});
# bless({value => bless({value => {}}, 'Venus::Hash')}, 'Venus::Box')
The call function dispatches function and method calls to a package and returns the result.
call(string | object | coderef $data, any @args) (any)
{ since => '2.32', }
=example-1 call
package main;
use Venus 'call';
require Digest::SHA;
my $result = call(\'Digest::SHA', 'new');
# bless(do{\(my $o = '...')}, 'digest::sha')
The cast function returns the argument provided as an object, promoting native Perl data types to data type objects. The optional second argument can be the name of the type for the object to cast to explicitly.
cast(any $data, string $type) (object)
{ since => '1.40', }
=example-1 cast
package main;
use Venus 'cast';
my $undef = cast;
# bless({value => undef}, "Venus::Undef")
The catch function executes the code block trapping errors and returning the caught exception in scalar context, and also returning the result as a second argument in list context.
catch(coderef $block) (Venus::Error, any)
{ since => '0.01', }
=example-1 catch
package main;
use Venus 'catch';
my $error = catch {die};
$error;
# "Died at ..."
The caught function evaluates the exception object provided and validates its identity and name (if provided) then executes the code block provided returning the result of the callback. If no callback is provided this function returns the exception object on success and undef on failure.
caught(object $error, string | tuple[string, string] $identity, coderef $block) (any)
{ since => '1.95', }
=example-1 caught
package main;
use Venus 'catch', 'caught', 'error';
my $error = catch { error };
my $result = caught $error, 'Venus::Error';
# bless(..., 'Venus::Error')
The chain function chains function and method calls to a package (and return values) and returns the result.
chain(string | object | coderef $self, string | within[arrayref, string] @args) (any)
{ since => '2.32', }
=example-1 chain
package main;
use Venus 'chain';
my $result = chain('Venus::Path', ['new', 't'], 'exists');
# 1
The check function builds a Venus::Assert object and returns the result of a "check" in Venus::Assert operation.
check(any $data, string $expr) (boolean)
{ since => '2.40', }
The clargs function accepts a single arrayref of Getopt::Long specs, or an arrayref of arguments followed by an arrayref of Getopt::Long specs, and returns a three element list of Venus::Args, Venus::Opts, and Venus::Vars objects. If only a single arrayref is provided, the arguments will be taken from @ARGV.
clargs(arrayref $args, arrayref $spec) (Venus::Args, Venus::Opts, Venus::Vars)
{ since => '3.10', }
The cli function builds and returns a Venus::Cli object.
cli(arrayref $args) (Venus::Cli)
{ since => '2.55', }
The clone function uses "dclone" in Storable to perform a deep clone of the reference provided and returns a copy.
clone(ref $value) (ref)
{ since => '3.55', }
The code function builds and returns a Venus::Code object, or dispatches to the coderef or method provided.
code(coderef $value, string | coderef $code, any @args) (any)
{ since => '2.55', }
The config function builds and returns a Venus::Config object, or dispatches to the coderef or method provided.
config(hashref $value, string | coderef $code, any @args) (any)
{ since => '2.55', }
The container function builds and returns a Venus::Container object, or dispatches to the coderef or method provided.
container(hashref $value, string | coderef $code, any @args) (any)
{ since => '3.20', }
The cop function attempts to curry the given subroutine on the object or class and if successful returns a closure.
cop(string | object | coderef $self, string $name) (coderef)
{ since => '2.32', }
=example-1 cop
package main;
use Venus 'cop';
my $coderef = cop('Digest::SHA', 'sha1_hex');
# sub { ... }
The data function builds and returns a Venus::Data object, or dispatches to the coderef or method provided.
data(string $value, string | coderef $code, any @args) (any)
{ since => '2.55', }
The date function builds and returns a Venus::Date object, or dispatches to the coderef or method provided.
date(number $value, string | coderef $code, any @args) (any)
{ since => '2.40', }
The docs function builds a Venus::Data object using "docs" in Venus::Data for the current file, i.e. "__FILE__" in perlfunc or script, i.e. $0, and returns the result of a "string" in Venus::Data operation using the arguments provided.
docs(any @args) (any)
{ since => '3.30', }
The enum function builds and returns a Venus::Enum object.
enum(arrayref | hashref $value) (Venus::Enum)
{ since => '3.55', }
The error function throws a Venus::Error exception object using the exception object arguments provided.
error(maybe[hashref] $args) (Venus::Error)
{ since => '0.01', }
=example-1 error
package main;
use Venus 'error';
my $error = error;
# bless({...}, 'Venus::Error')
The false function returns a falsy boolean value which is designed to be practically indistinguishable from the conventional numerical 0 value.
false() (boolean)
{ since => '0.01', }
=example-1 false
package main;
use Venus;
my $false = false;
# 0
The fault function throws a Venus::Fault exception object and represents a system failure, and isn't meant to be caught.
fault(string $args) (Venus::Fault)
{ since => '1.80', }
=example-1 fault
package main;
use Venus 'fault';
my $fault = fault;
# bless({message => 'Exception!'}, 'Venus::Fault')
The float function builds and returns a Venus::Float object, or dispatches to the coderef or method provided.
float(string $value, string | coderef $code, any @args) (any)
{ since => '2.55', }
The future function builds and returns a Venus::Future object.
future(coderef $code) (Venus::Future)
{ since => '3.55', }
The gather function builds a Venus::Gather object, passing it and the value provided to the callback provided, and returns the return value from "result" in Venus::Gather.
gather(any $value, coderef $callback) (any)
{ since => '2.50', }
The hash function builds and returns a Venus::Hash object, or dispatches to the coderef or method provided.
hash(hashref $value, string | coderef $code, any @args) (any)
{ since => '2.55', }
The hashref function takes a list of arguments and returns a hashref.
hashref(any @args) (hashref)
{ since => '3.10', }
=example-1 hashref
package main;
use Venus 'hashref';
my $hashref = hashref(content => 'example');
# {content => "example"}
The is_bool function returns "true" if the value provided is a boolean value, not merely truthy, and "false" otherwise.
is_bool(any $arg) (boolean)
{ since => '3.18', }
The is_false function accepts a scalar value and returns true if the value is falsy.
is_false(any $data) (boolean)
{ since => '3.04', }
The is_true function accepts a scalar value and returns true if the value is truthy.
is_true(any $data) (boolean)
{ since => '3.04', }
The json function builds a Venus::Json object and will either "decode" in Venus::Json or "encode" in Venus::Json based on the argument provided and returns the result.
json(string $call, any $data) (any)
{ since => '2.40', }
The list function accepts a list of values and flattens any arrayrefs, returning a list of scalars.
list(any @args) (any)
{ since => '3.04', }
The load function loads the package provided and returns a Venus::Space object.
load(any $name) (Venus::Space)
{ since => '2.32', }
=example-1 load
package main;
use Venus 'load';
my $space = load 'Venus::Scalar';
# bless({value => 'Venus::Scalar'}, 'Venus::Space')
The log function prints the arguments provided to STDOUT, stringifying complex values, and returns a Venus::Log object. If the first argument is a log level name, e.g. debug, error, fatal, info, trace, or warn, it will be used when emitting the event. The desired log level is specified by the VENUS_LOG_LEVEL environment variable and defaults to trace.
log(any @args) (Venus::Log)
{ since => '2.40', }
The make function "calls" the new routine on the invocant and returns the result which should be a package string or an object.
make(string $package, any @args) (any)
{ since => '2.32', }
=example-1 make
package main;
use Venus 'make';
my $made = make('Digest::SHA');
# bless(do{\(my $o = '...')}, 'Digest::SHA')
The match function builds a Venus::Match object, passing it and the value provided to the callback provided, and returns the return value from "result" in Venus::Match.
match(any $value, coderef $callback) (any)
{ since => '2.50', }
The merge function returns a value which is a merger of all of the arguments provided.
merge(any @args) (any)
{ since => '2.32', }
=example-1 merge
package main;
use Venus 'merge';
my $merged = merge({1..4}, {5, 6});
# {1..6}
The meta function builds and returns a Venus::Meta object, or dispatches to the coderef or method provided.
meta(string $value, string | coderef $code, any @args) (any)
{ since => '2.55', }
The name function builds and returns a Venus::Name object, or dispatches to the coderef or method provided.
name(string $value, string | coderef $code, any @args) (any)
{ since => '2.55', }
The number function builds and returns a Venus::Number object, or dispatches to the coderef or method provided.
number(Num $value, string | coderef $code, any @args) (any)
{ since => '2.55', }
The opts function builds and returns a Venus::Opts object, or dispatches to the coderef or method provided.
opts(arrayref $value, string | coderef $code, any @args) (any)
{ since => '2.55', }
The pairs function accepts an arrayref or hashref and returns an arrayref of arrayrefs holding keys (or indices) and values. The function returns an empty arrayref for all other values provided. Returns a list in list context.
pairs(any $data) (arrayref)
{ since => '3.04', }
The path function builds and returns a Venus::Path object, or dispatches to the coderef or method provided.
path(string $value, string | coderef $code, any @args) (any)
{ since => '2.55', }
The perl function builds a Venus::Dump object and will either "decode" in Venus::Dump or "encode" in Venus::Dump based on the argument provided and returns the result.
perl(string $call, any $data) (any)
{ since => '2.40', }
The process function builds and returns a Venus::Process object, or dispatches to the coderef or method provided.
process(string | coderef $code, any @args) (any)
{ since => '2.55', }
The proto function builds and returns a Venus::Prototype object, or dispatches to the coderef or method provided.
proto(hashref $value, string | coderef $code, any @args) (any)
{ since => '2.55', }
The puts function select values from within the underlying data structure using "path" in Venus::Array or "path" in Venus::Hash, optionally assigning the value to the preceeding scalar reference and returns all the values selected.
puts(any @args) (arrayref)
{ since => '3.20', }
The raise function generates and throws a named exception object derived from Venus::Error, or provided base class, using the exception object arguments provided.
raise(string $class | tuple[string, string] $class, maybe[hashref] $args) (Venus::Error)
{ since => '0.01', }
=example-1 raise
package main;
use Venus 'raise';
my $error = raise 'MyApp::Error';
# bless({...}, 'MyApp::Error')
The random function builds and returns a Venus::Random object, or dispatches to the coderef or method provided.
random(string | coderef $code, any @args) (any)
{ since => '2.55', }
The range function returns the result of a "range" in Venus::Array operation.
range(number | string @args) (arrayref)
{ since => '3.20', }
The regexp function builds and returns a Venus::Regexp object, or dispatches to the coderef or method provided.
regexp(string $value, string | coderef $code, any @args) (any)
{ since => '2.55', }
The render function accepts a string as a template and renders it using Venus::Template, and returns the result.
render(string $data, hashref $args) (string)
{ since => '3.04', }
The replace function builds and returns a Venus::Replace object, or dispatches to the coderef or method provided.
replace(arrayref $value, string | coderef $code, any @args) (any)
{ since => '2.55', }
The resolve function builds and returns an object via "resolve" in Venus::Container.
resolve(hashref $value, any @args) (any)
{ since => '3.30', }
The roll function takes a list of arguments, assuming the first argument is invokable, and reorders the list such that the routine name provided comes after the invocant (i.e. the 1st argument), creating a list acceptable to the "call" function.
roll(string $name, any @args) (any)
{ since => '2.32', }
=example-1 roll
package main;
use Venus 'roll';
my @list = roll('sha1_hex', 'Digest::SHA');
# ('Digest::SHA', 'sha1_hex');
The search function builds and returns a Venus::Search object, or dispatches to the coderef or method provided.
search(arrayref $value, string | coderef $code, any @args) (any)
{ since => '2.55', }
The set function returns a Venus::Set object for the arrayref provided.
set(arrayref $value) (Venus::Set)
{ since => '4.11', }
=example-1 set
package main;
use Venus 'set';
my $set = set [1..9];
# bless(..., 'Venus::Set')
The space function returns a Venus::Space object for the package provided.
space(any $name) (Venus::Space)
{ since => '2.32', }
=example-1 space
package main;
use Venus 'space';
my $space = space 'Venus::Scalar';
# bless({value => 'Venus::Scalar'}, 'Venus::Space')
The schema function builds and returns a Venus::Schema object, or dispatches to the coderef or method provided.
schema(string $value, string | coderef $code, any @args) (any)
{ since => '2.55', }
The string function builds and returns a Venus::String object, or dispatches to the coderef or method provided.
string(string $value, string | coderef $code, any @args) (any)
{ since => '2.55', }
The syscall function perlforms system call, i.e. a "qx" in perlfunc operation, and returns true if the command succeeds, otherwise returns false. In list context, returns the output of the operation and the exit code.
syscall(number | string @args) (any)
{ since => '3.04', }
The template function builds and returns a Venus::Template object, or dispatches to the coderef or method provided.
template(string $value, string | coderef $code, any @args) (any)
{ since => '2.55', }
The test function builds and returns a Venus::Test object, or dispatches to the coderef or method provided.
test(string $value, string | coderef $code, any @args) (any)
{ since => '2.55', }
The text function builds a Venus::Data object using "text" in Venus::Data for the current file, i.e. "__FILE__" in perlfunc or script, i.e. $0, and returns the result of a "string" in Venus::Data operation using the arguments provided.
text(any @args) (any)
{ since => '3.30', }
The then function proxies the call request to the "call" function and returns the result as a list, prepended with the invocant.
then(string | object | coderef $self, any @args) (any)
{ since => '2.32', }
=example-1 then
package main;
use Venus 'then';
my @list = then('Digest::SHA', 'sha1_hex');
# ("Digest::SHA", "da39a3ee5e6b4b0d3255bfef95601890afd80709")
The throw function builds and returns a Venus::Throw object, or dispatches to the coderef or method provided.
throw(string | hashref $value, string | coderef $code, any @args) (any)
{ since => '2.55', }
The true function returns a truthy boolean value which is designed to be practically indistinguishable from the conventional numerical 1 value.
true() (boolean)
{ since => '0.01', }
=example-1 true
package main;
use Venus;
my $true = true;
# 1
The try function builds and returns a Venus::Try object, or dispatches to the coderef or method provided.
try(any $data, string | coderef $code, any @args) (any)
{ since => '2.55', }
The type function builds and returns a Venus::Type object, or dispatches to the coderef or method provided.
type(any $data, string | coderef $code, any @args) (any)
{ since => '2.55', }
The unpack function builds and returns a Venus::Unpack object.
unpack(any @args) (Venus::Unpack)
{ since => '2.40', }
The vars function builds and returns a Venus::Vars object, or dispatches to the coderef or method provided.
vars(hashref $value, string | coderef $code, any @args) (any)
{ since => '2.55', }
The venus function build a Venus package via the "chain" function based on the name provided and returns an instance of that package.
venus(string $name, any @args) (any)
{ since => '2.40', }
The work function builds a Venus::Process object, forks the current process using the callback provided via the "work" in Venus::Process operation, and returns an instance of Venus::Process representing the current process.
work(coderef $callback) (Venus::Process)
{ since => '2.40', }
The wrap function installs a wrapper function in the calling package which when called either returns the package string if no arguments are provided, or calls "make" on the package with whatever arguments are provided and returns the result. Unless an alias is provided as a second argument, special characters are stripped from the package to create the function name.
wrap(string $data, string $name) (coderef)
{ since => '2.32', }
=example-1 wrap
package main;
use Venus 'wrap';
my $coderef = wrap('Digest::SHA');
# sub { ... }
# my $digest = DigestSHA();
# "Digest::SHA"
# my $digest = DigestSHA(1);
# bless(do{\(my $o = '...')}, 'Digest::SHA')
The yaml function builds a Venus::Yaml object and will either "decode" in Venus::Yaml or "encode" in Venus::Yaml based on the argument provided and returns the result.
yaml(string $call, any $data) (any)
{ since => '2.40', }
This library contains a Venus::Args class which provides methods for accessing @ARGS items.
This library contains a Venus::Array class which provides methods for manipulating array data.
This library contains a Venus::Assert class which provides a mechanism for asserting type constraints and coercion.
This library contains a Venus::Boolean class which provides a representation for boolean values.
This library contains a Venus::Box class which provides a pure Perl boxing mechanism.
This library contains a Venus::Class class which provides a class builder.
This library contains a Venus::Cli class which provides a superclass for creating CLIs.
This library contains a Venus::Code class which provides methods for manipulating subroutines.
This library contains a Venus::Config class which provides methods for loading Perl, YAML, and JSON configuration data.
This library contains a Venus::Data class which provides methods for extracting DATA sections and POD block.
This library contains a Venus::Date class which provides methods for formatting, parsing, and manipulating dates.
This library contains a Venus::Dump class which provides methods for reading and writing dumped Perl data.
This library contains a Venus::Error class which represents a context-aware error (exception object).
This library contains a Venus::False class which provides the global false value.
This library contains a Venus::Fault class which represents a generic system error (exception object).
This library contains a Venus::Float class which provides methods for manipulating float data.
This library contains a Venus::Gather class which provides an object-oriented interface for complex pattern matching operations on collections of data, e.g. array references.
This library contains a Venus::Hash class which provides methods for manipulating hash data.
This library contains a Venus::Json class which provides methods for reading and writing JSON data.
This library contains a Venus::Log class which provides methods for logging information using various log levels.
This library contains a Venus::Match class which provides an object-oriented interface for complex pattern matching operations on scalar values.
This library contains a Venus::Meta class which provides configuration information for Venus derived classes.
This library contains a Venus::Mixin class which provides a mixin builder.
This library contains a Venus::Name class which provides methods for parsing and formatting package namespaces.
This library contains a Venus::Number class which provides methods for manipulating number data.
This library contains a Venus::Opts class which provides methods for handling command-line arguments.
This library contains a Venus::Path class which provides methods for working with file system paths.
This library contains a Venus::Process class which provides methods for handling and forking processes.
This library contains a Venus::Prototype class which provides a simple construct for enabling prototype-base programming.
This library contains a Venus::Random class which provides an object-oriented interface for Perl's pseudo-random number generator.
This library contains a Venus::Regexp class which provides methods for manipulating regexp data.
This library contains a Venus::Replace class which provides methods for manipulating regexp replacement data.
This library contains a Venus::Run class which provides a base class for providing a command execution system for creating CLIs (command-line interfaces).
This library contains a Venus::Scalar class which provides methods for manipulating scalar data.
This library contains a Venus::Search class which provides methods for manipulating regexp search data.
This library contains a Venus::Space class which provides methods for parsing and manipulating package namespaces.
This library contains a Venus::String class which provides methods for manipulating string data.
This library contains a Venus::Task class which provides a base class for creating CLIs (command-line interfaces).
This library contains a Venus::Template class which provides a templating system, and methods for rendering template.
This library contains a Venus::Test class which aims to provide a standard for documenting Venus derived software projects.
This library contains a Venus::Throw class which provides a mechanism for generating and raising error objects.
This library contains a Venus::True class which provides the global true value.
This library contains a Venus::Try class which provides an object-oriented interface for performing complex try/catch operations.
This library contains a Venus::Type class which provides methods for casting native data types to objects.
This library contains a Venus::Undef class which provides methods for manipulating undef data.
This library contains a Venus::Unpack class which provides methods for validating, coercing, and otherwise operating on lists of arguments.
This library contains a Venus::Vars class which provides methods for accessing %ENV items.
This library contains a Venus::Yaml class which provides methods for reading and writing YAML data.
Awncorp, awncorp@cpan.org
Copyright (C) 2022, Awncorp, awncorp@cpan.org.
This program is free software, you can redistribute it and/or modify it under the terms of the Apache license version 2.0.
476 POD Errors
The following errors were encountered while parsing the POD:
- Around line 196:
Unknown directive: =name
- Around line 204:
Unknown directive: =tagline
- Around line 212:
Unknown directive: =abstract
- Around line 220:
Unknown directive: =includes
- Around line 309:
Unknown directive: =synopsis
- Around line 342:
Unknown directive: =description
- Around line 438:
Unknown directive: =function
- Around line 443:
Unknown directive: =signature
- Around line 447:
Unknown directive: =metadata
- Around line 465:
=cut found outside a pod block. Skipping to next block.
- Around line 485:
=cut found outside a pod block. Skipping to next block.
- Around line 495:
Unknown directive: =function
- Around line 500:
Unknown directive: =signature
- Around line 504:
Unknown directive: =metadata
- Around line 522:
=cut found outside a pod block. Skipping to next block.
- Around line 543:
=cut found outside a pod block. Skipping to next block.
- Around line 553:
Unknown directive: =function
- Around line 557:
Unknown directive: =signature
- Around line 561:
Unknown directive: =metadata
- Around line 597:
=cut found outside a pod block. Skipping to next block.
- Around line 617:
=cut found outside a pod block. Skipping to next block.
- Around line 627:
Unknown directive: =function
- Around line 632:
Unknown directive: =signature
- Around line 636:
Unknown directive: =metadata
- Around line 654:
=cut found outside a pod block. Skipping to next block.
- Around line 674:
=cut found outside a pod block. Skipping to next block.
- Around line 695:
=cut found outside a pod block. Skipping to next block.
- Around line 706:
Unknown directive: =function
- Around line 712:
Unknown directive: =signature
- Around line 716:
Unknown directive: =metadata
- Around line 736:
=cut found outside a pod block. Skipping to next block.
- Around line 752:
Unknown directive: =function
- Around line 756:
Unknown directive: =signature
- Around line 760:
Unknown directive: =metadata
- Around line 782:
=cut found outside a pod block. Skipping to next block.
- Around line 794:
Unknown directive: =function
- Around line 801:
Unknown directive: =signature
- Around line 805:
Unknown directive: =metadata
- Around line 829:
=cut found outside a pod block. Skipping to next block.
- Around line 848:
Unknown directive: =function
- Around line 852:
Unknown directive: =signature
- Around line 856:
Unknown directive: =metadata
- Around line 874:
=cut found outside a pod block. Skipping to next block.
- Around line 895:
=cut found outside a pod block. Skipping to next block.
- Around line 906:
Unknown directive: =function
- Around line 910:
Unknown directive: =signature
- Around line 914:
Unknown directive: =metadata
- Around line 952:
=cut found outside a pod block. Skipping to next block.
- Around line 964:
Unknown directive: =function
- Around line 969:
Unknown directive: =signature
- Around line 973:
Unknown directive: =metadata
- Around line 1013:
=cut found outside a pod block. Skipping to next block.
- Around line 1035:
=cut found outside a pod block. Skipping to next block.
- Around line 1058:
=cut found outside a pod block. Skipping to next block.
- Around line 1070:
Unknown directive: =function
- Around line 1076:
Unknown directive: =signature
- Around line 1080:
Unknown directive: =metadata
- Around line 1116:
=cut found outside a pod block. Skipping to next block.
- Around line 1139:
=cut found outside a pod block. Skipping to next block.
- Around line 1159:
=cut found outside a pod block. Skipping to next block.
- Around line 1170:
Unknown directive: =function
- Around line 1176:
Unknown directive: =signature
- Around line 1180:
Unknown directive: =metadata
- Around line 1220:
=cut found outside a pod block. Skipping to next block.
- Around line 1242:
=cut found outside a pod block. Skipping to next block.
- Around line 1252:
Unknown directive: =function
- Around line 1259:
Unknown directive: =signature
- Around line 1263:
Unknown directive: =metadata
- 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 1352:
=cut found outside a pod block. Skipping to next block.
- Around line 1377:
=cut found outside a pod block. Skipping to next block.
- Around line 1398:
=cut found outside a pod block. Skipping to next block.
- Around line 1419:
=cut found outside a pod block. Skipping to next block.
- Around line 1440:
=cut found outside a pod block. Skipping to next block.
- Around line 1461:
=cut found outside a pod block. Skipping to next block.
- Around line 1488:
=cut found outside a pod block. Skipping to next block.
- Around line 1501:
Unknown directive: =function
- Around line 1506:
Unknown directive: =signature
- Around line 1510:
Unknown directive: =metadata
- Around line 1546:
=cut found outside a pod block. Skipping to next block.
- Around line 1556:
Unknown directive: =function
- Around line 1561:
Unknown directive: =signature
- Around line 1565:
Unknown directive: =metadata
- Around line 1583:
=cut found outside a pod block. Skipping to next block.
- Around line 1603:
=cut found outside a pod block. Skipping to next block.
- Around line 1613:
Unknown directive: =function
- Around line 1621:
Unknown directive: =signature
- Around line 1625:
Unknown directive: =metadata
- Around line 1647:
=cut found outside a pod block. Skipping to next block.
- Around line 1675:
=cut found outside a pod block. Skipping to next block.
- Around line 1705:
=cut found outside a pod block. Skipping to next block.
- Around line 1720:
Unknown directive: =function
- Around line 1724:
Unknown directive: =signature
- Around line 1728:
Unknown directive: =metadata
- Around line 1746:
=cut found outside a pod block. Skipping to next block.
- Around line 1770:
=cut found outside a pod block. Skipping to next block.
- Around line 1781:
Unknown directive: =function
- Around line 1786:
Unknown directive: =signature
- Around line 1790:
Unknown directive: =metadata
- Around line 1814:
=cut found outside a pod block. Skipping to next block.
- Around line 1841:
=cut found outside a pod block. Skipping to next block.
- Around line 1852:
Unknown directive: =function
- Around line 1857:
Unknown directive: =signature
- Around line 1861:
Unknown directive: =metadata
- Around line 1879:
=cut found outside a pod block. Skipping to next block.
- Around line 1901:
=cut found outside a pod block. Skipping to next block.
- Around line 1913:
Unknown directive: =function
- Around line 1918:
Unknown directive: =signature
- Around line 1922:
Unknown directive: =metadata
- Around line 1940:
=cut found outside a pod block. Skipping to next block.
- Around line 1961:
=cut found outside a pod block. Skipping to next block.
- Around line 1972:
Unknown directive: =function
- Around line 1977:
Unknown directive: =signature
- Around line 1981:
Unknown directive: =metadata
- Around line 1999:
=cut found outside a pod block. Skipping to next block.
- Around line 2034:
=cut found outside a pod block. Skipping to next block.
- Around line 2045:
Unknown directive: =function
- Around line 2050:
Unknown directive: =signature
- Around line 2054:
Unknown directive: =metadata
- Around line 2092:
=cut found outside a pod block. Skipping to next block.
- Around line 2102:
Unknown directive: =function
- Around line 2107:
Unknown directive: =signature
- Around line 2111:
Unknown directive: =metadata
- Around line 2129:
=cut found outside a pod block. Skipping to next block.
- Around line 2150:
=cut found outside a pod block. Skipping to next block.
- Around line 2160:
Unknown directive: =function
- Around line 2165:
Unknown directive: =signature
- Around line 2169:
Unknown directive: =metadata
- Around line 2187:
=cut found outside a pod block. Skipping to next block.
- Around line 2211:
=cut found outside a pod block. Skipping to next block.
- Around line 2231:
=cut found outside a pod block. Skipping to next block.
- Around line 2241:
Unknown directive: =function
- Around line 2247:
Unknown directive: =signature
- Around line 2251:
Unknown directive: =metadata
- Around line 2275:
=cut found outside a pod block. Skipping to next block.
- Around line 2308:
=cut found outside a pod block. Skipping to next block.
- Around line 2319:
Unknown directive: =function
- Around line 2323:
Unknown directive: =signature
- Around line 2327:
Unknown directive: =metadata
- Around line 2353:
=cut found outside a pod block. Skipping to next block.
- Around line 2388:
=cut found outside a pod block. Skipping to next block.
- Around line 2402:
Unknown directive: =function
- Around line 2407:
Unknown directive: =signature
- Around line 2411:
Unknown directive: =metadata
- Around line 2451:
=cut found outside a pod block. Skipping to next block.
- Around line 2463:
Unknown directive: =function
- Around line 2468:
Unknown directive: =signature
- Around line 2472:
Unknown directive: =metadata
- Around line 2508:
=cut found outside a pod block. Skipping to next block.
- Around line 2517:
Unknown directive: =function
- Around line 2522:
Unknown directive: =signature
- Around line 2526:
Unknown directive: =metadata
- Around line 2564:
=cut found outside a pod block. Skipping to next block.
- Around line 2576:
Unknown directive: =function
- Around line 2581:
Unknown directive: =signature
- Around line 2585:
Unknown directive: =metadata
- Around line 2603:
=cut found outside a pod block. Skipping to next block.
- Around line 2624:
=cut found outside a pod block. Skipping to next block.
- Around line 2634:
Unknown directive: =function
- Around line 2638:
Unknown directive: =signature
- Around line 2642:
Unknown directive: =metadata
- Around line 2668:
=cut found outside a pod block. Skipping to next block.
- Around line 2680:
Unknown directive: =function
- Around line 2686:
Unknown directive: =signature
- Around line 2690:
Unknown directive: =metadata
- Around line 2712:
=cut found outside a pod block. Skipping to next block.
- Around line 2736:
=cut found outside a pod block. Skipping to next block.
- Around line 2760:
=cut found outside a pod block. Skipping to next block.
- Around line 2785:
=cut found outside a pod block. Skipping to next block.
- Around line 2809:
=cut found outside a pod block. Skipping to next block.
- Around line 2819:
Unknown directive: =function
- Around line 2824:
Unknown directive: =signature
- Around line 2828:
Unknown directive: =metadata
- Around line 2846:
=cut found outside a pod block. Skipping to next block.
- Around line 2867:
=cut found outside a pod block. Skipping to next block.
- Around line 2877:
Unknown directive: =function
- Around line 2881:
Unknown directive: =signature
- Around line 2885:
Unknown directive: =metadata
- Around line 2921:
=cut found outside a pod block. Skipping to next block.
- Around line 2941:
=cut found outside a pod block. Skipping to next block.
- Around line 2961:
=cut found outside a pod block. Skipping to next block.
- Around line 2971:
Unknown directive: =function
- Around line 2976:
Unknown directive: =signature
- Around line 2980:
Unknown directive: =metadata
- Around line 2998:
=cut found outside a pod block. Skipping to next block.
- Around line 3019:
=cut found outside a pod block. Skipping to next block.
- Around line 3040:
=cut found outside a pod block. Skipping to next block.
- Around line 3061:
=cut found outside a pod block. Skipping to next block.
- Around line 3072:
Unknown directive: =function
- Around line 3077:
Unknown directive: =signature
- Around line 3081:
Unknown directive: =metadata
- Around line 3099:
=cut found outside a pod block. Skipping to next block.
- Around line 3120:
=cut found outside a pod block. Skipping to next block.
- Around line 3131:
Unknown directive: =function
- Around line 3136:
Unknown directive: =signature
- Around line 3140:
Unknown directive: =metadata
- Around line 3158:
=cut found outside a pod block. Skipping to next block.
- Around line 3179:
=cut found outside a pod block. Skipping to next block.
- Around line 3190:
Unknown directive: =function
- Around line 3196:
Unknown directive: =signature
- Around line 3200:
Unknown directive: =metadata
- Around line 3218:
=cut found outside a pod block. Skipping to next block.
- Around line 3241:
=cut found outside a pod block. Skipping to next block.
- Around line 3265:
=cut found outside a pod block. Skipping to next block.
- Around line 3288:
=cut found outside a pod block. Skipping to next block.
- Around line 3302:
Unknown directive: =function
- Around line 3307:
Unknown directive: =signature
- Around line 3311:
Unknown directive: =metadata
- Around line 3329:
=cut found outside a pod block. Skipping to next block.
- Around line 3349:
=cut found outside a pod block. Skipping to next block.
- Around line 3369:
=cut found outside a pod block. Skipping to next block.
- Around line 3379:
Unknown directive: =function
- Around line 3383:
Unknown directive: =signature
- Around line 3387:
Unknown directive: =metadata
- Around line 3414:
Unknown directive: =function
- Around line 3422:
Unknown directive: =signature
- Around line 3426:
Unknown directive: =metadata
- Around line 3448:
=cut found outside a pod block. Skipping to next block.
- Around line 3458:
Unknown directive: =function
- Around line 3463:
Unknown directive: =signature
- Around line 3467:
Unknown directive: =metadata
- Around line 3503:
=cut found outside a pod block. Skipping to next block.
- Around line 3513:
Unknown directive: =function
- Around line 3519:
Unknown directive: =signature
- Around line 3523:
Unknown directive: =metadata
- Around line 3545:
=cut found outside a pod block. Skipping to next block.
- Around line 3569:
=cut found outside a pod block. Skipping to next block.
- Around line 3593:
=cut found outside a pod block. Skipping to next block.
- Around line 3618:
=cut found outside a pod block. Skipping to next block.
- Around line 3643:
=cut found outside a pod block. Skipping to next block.
- Around line 3667:
=cut found outside a pod block. Skipping to next block.
- Around line 3677:
Unknown directive: =function
- Around line 3682:
Unknown directive: =signature
- Around line 3686:
Unknown directive: =metadata
- Around line 3722:
=cut found outside a pod block. Skipping to next block.
- Around line 3732:
Unknown directive: =function
- Around line 3737:
Unknown directive: =signature
- Around line 3741:
Unknown directive: =metadata
- Around line 3759:
=cut found outside a pod block. Skipping to next block.
- Around line 3780:
=cut found outside a pod block. Skipping to next block.
- Around line 3790:
Unknown directive: =function
- Around line 3795:
Unknown directive: =signature
- Around line 3799:
Unknown directive: =metadata
- Around line 3817:
=cut found outside a pod block. Skipping to next block.
- Around line 3838:
=cut found outside a pod block. Skipping to next block.
- Around line 3848:
Unknown directive: =function
- Around line 3853:
Unknown directive: =signature
- Around line 3857:
Unknown directive: =metadata
- Around line 3875:
=cut found outside a pod block. Skipping to next block.
- Around line 3896:
=cut found outside a pod block. Skipping to next block.
- Around line 3906:
Unknown directive: =function
- Around line 3911:
Unknown directive: =signature
- Around line 3915:
Unknown directive: =metadata
- Around line 3933:
=cut found outside a pod block. Skipping to next block.
- Around line 3957:
=cut found outside a pod block. Skipping to next block.
- Around line 3968:
Unknown directive: =function
- Around line 3974:
Unknown directive: =signature
- Around line 3978:
Unknown directive: =metadata
- Around line 3996:
=cut found outside a pod block. Skipping to next block.
- Around line 4016:
=cut found outside a pod block. Skipping to next block.
- Around line 4036:
=cut found outside a pod block. Skipping to next block.
- Around line 4056:
=cut found outside a pod block. Skipping to next block.
- Around line 4066:
Unknown directive: =function
- Around line 4071:
Unknown directive: =signature
- Around line 4075:
Unknown directive: =metadata
- Around line 4093:
=cut found outside a pod block. Skipping to next block.
- Around line 4114:
=cut found outside a pod block. Skipping to next block.
- Around line 4125:
Unknown directive: =function
- Around line 4131:
Unknown directive: =signature
- Around line 4135:
Unknown directive: =metadata
- Around line 4153:
=cut found outside a pod block. Skipping to next block.
- Around line 4173:
=cut found outside a pod block. Skipping to next block.
- Around line 4194:
=cut found outside a pod block. Skipping to next block.
- Around line 4214:
=cut found outside a pod block. Skipping to next block.
- Around line 4225:
Unknown directive: =function
- Around line 4230:
Unknown directive: =signature
- Around line 4234:
Unknown directive: =metadata
- Around line 4252:
=cut found outside a pod block. Skipping to next block.
- Around line 4272:
=cut found outside a pod block. Skipping to next block.
- Around line 4283:
Unknown directive: =function
- Around line 4288:
Unknown directive: =signature
- Around line 4292:
Unknown directive: =metadata
- Around line 4312:
=cut found outside a pod block. Skipping to next block.
- Around line 4336:
=cut found outside a pod block. Skipping to next block.
- Around line 4349:
Unknown directive: =function
- Around line 4355:
Unknown directive: =signature
- Around line 4359:
Unknown directive: =metadata
- Around line 4391:
=cut found outside a pod block. Skipping to next block.
- Around line 4401:
Unknown directive: =function
- Around line 4407:
Unknown directive: =signature
- Around line 4411:
Unknown directive: =metadata
- Around line 4450:
=cut found outside a pod block. Skipping to next block.
- Around line 4475:
=cut found outside a pod block. Skipping to next block.
- Around line 4488:
Unknown directive: =function
- Around line 4493:
Unknown directive: =signature
- Around line 4497:
Unknown directive: =metadata
- Around line 4515:
=cut found outside a pod block. Skipping to next block.
- Around line 4538:
=cut found outside a pod block. Skipping to next block.
- Around line 4551:
Unknown directive: =function
- Around line 4555:
Unknown directive: =signature
- Around line 4559:
Unknown directive: =metadata
- Around line 4577:
=cut found outside a pod block. Skipping to next block.
- Around line 4597:
=cut found outside a pod block. Skipping to next block.
- Around line 4607:
Unknown directive: =function
- Around line 4612:
Unknown directive: =signature
- Around line 4616:
Unknown directive: =metadata
- Around line 4634:
=cut found outside a pod block. Skipping to next block.
- Around line 4658:
=cut found outside a pod block. Skipping to next block.
- Around line 4669:
Unknown directive: =function
- Around line 4674:
Unknown directive: =signature
- Around line 4678:
Unknown directive: =metadata
- Around line 4698:
=cut found outside a pod block. Skipping to next block.
- Around line 4708:
Unknown directive: =function
- Around line 4713:
Unknown directive: =signature
- Around line 4717:
Unknown directive: =metadata
- Around line 4735:
=cut found outside a pod block. Skipping to next block.
- Around line 4758:
=cut found outside a pod block. Skipping to next block.
- Around line 4768:
Unknown directive: =function
- Around line 4772:
Unknown directive: =signature
- Around line 4776:
Unknown directive: =metadata
- Around line 4794:
=cut found outside a pod block. Skipping to next block.
- Around line 4822:
=cut found outside a pod block. Skipping to next block.
- Around line 4832:
Unknown directive: =function
- Around line 4839:
Unknown directive: =signature
- Around line 4843:
Unknown directive: =metadata
- Around line 4879:
=cut found outside a pod block. Skipping to next block.
- Around line 4890:
Unknown directive: =function
- Around line 4895:
Unknown directive: =signature
- Around line 4899:
Unknown directive: =metadata
- Around line 4917:
=cut found outside a pod block. Skipping to next block.
- Around line 4939:
=cut found outside a pod block. Skipping to next block.
- Around line 4949:
Unknown directive: =function
- Around line 4953:
Unknown directive: =signature
- Around line 4957:
Unknown directive: =metadata
- Around line 4984:
Unknown directive: =function
- Around line 4988:
Unknown directive: =signature
- Around line 4992:
Unknown directive: =metadata
- Around line 5019:
Unknown directive: =function
- Around line 5024:
Unknown directive: =signature
- Around line 5028:
Unknown directive: =metadata
- Around line 5046:
=cut found outside a pod block. Skipping to next block.
- Around line 5067:
=cut found outside a pod block. Skipping to next block.
- Around line 5077:
Unknown directive: =function
- Around line 5082:
Unknown directive: =signature
- Around line 5086:
Unknown directive: =metadata
- Around line 5104:
=cut found outside a pod block. Skipping to next block.
- Around line 5125:
=cut found outside a pod block. Skipping to next block.
- Around line 5135:
Unknown directive: =function
- Around line 5141:
Unknown directive: =signature
- Around line 5145:
Unknown directive: =metadata
- Around line 5163:
=cut found outside a pod block. Skipping to next block.
- Around line 5187:
=cut found outside a pod block. Skipping to next block.
- Around line 5211:
=cut found outside a pod block. Skipping to next block.
- Around line 5234:
=cut found outside a pod block. Skipping to next block.
- Around line 5247:
Unknown directive: =function
- Around line 5252:
Unknown directive: =signature
- Around line 5256:
Unknown directive: =metadata
- Around line 5274:
=cut found outside a pod block. Skipping to next block.
- Around line 5297:
=cut found outside a pod block. Skipping to next block.
- Around line 5307:
Unknown directive: =function
- Around line 5312:
Unknown directive: =signature
- Around line 5316:
Unknown directive: =metadata
- Around line 5334:
=cut found outside a pod block. Skipping to next block.
- Around line 5355:
=cut found outside a pod block. Skipping to next block.
- Around line 5366:
Unknown directive: =function
- Around line 5372:
Unknown directive: =signature
- Around line 5376:
Unknown directive: =metadata
- Around line 5412:
=cut found outside a pod block. Skipping to next block.
- Around line 5451:
=cut found outside a pod block. Skipping to next block.
- Around line 5490:
=cut found outside a pod block. Skipping to next block.
- Around line 5501:
Unknown directive: =function
- Around line 5506:
Unknown directive: =signature
- Around line 5510:
Unknown directive: =metadata
- Around line 5536:
Unknown directive: =function
- Around line 5541:
Unknown directive: =signature
- Around line 5545:
Unknown directive: =metadata
- Around line 5563:
=cut found outside a pod block. Skipping to next block.
- Around line 5584:
=cut found outside a pod block. Skipping to next block.
- Around line 5611:
=cut found outside a pod block. Skipping to next block.
- Around line 5625:
Unknown directive: =function
- Around line 5630:
Unknown directive: =signature
- Around line 5634:
Unknown directive: =metadata
- Around line 5670:
=cut found outside a pod block. Skipping to next block.
- Around line 5679:
Unknown directive: =function
- Around line 5684:
Unknown directive: =signature
- Around line 5688:
Unknown directive: =metadata
- Around line 5710:
=cut found outside a pod block. Skipping to next block.
- Around line 5734:
=cut found outside a pod block. Skipping to next block.
- Around line 5758:
=cut found outside a pod block. Skipping to next block.
- Around line 5769:
Unknown directive: =function
- Around line 5774:
Unknown directive: =signature
- Around line 5778:
Unknown directive: =metadata
- Around line 5800:
=cut found outside a pod block. Skipping to next block.
- Around line 5822:
=cut found outside a pod block. Skipping to next block.
- Around line 5832:
Unknown directive: =function
- Around line 5836:
Unknown directive: =signature
- Around line 5840:
Unknown directive: =metadata
- Around line 5866:
=cut found outside a pod block. Skipping to next block.
- Around line 5897:
=cut found outside a pod block. Skipping to next block.
- Around line 5910:
Unknown directive: =function
- Around line 5915:
Unknown directive: =signature
- Around line 5919:
Unknown directive: =metadata
- Around line 5937:
=cut found outside a pod block. Skipping to next block.
- Around line 5957:
=cut found outside a pod block. Skipping to next block.
- Around line 5967:
Unknown directive: =function
- Around line 5972:
Unknown directive: =signature
- Around line 5976:
Unknown directive: =metadata
- Around line 5994:
=cut found outside a pod block. Skipping to next block.
- Around line 6015:
=cut found outside a pod block. Skipping to next block.
- Around line 6036:
=cut found outside a pod block. Skipping to next block.
- Around line 6046:
Unknown directive: =function
- Around line 6052:
Unknown directive: =signature
- Around line 6056:
Unknown directive: =metadata
- Around line 6078:
=cut found outside a pod block. Skipping to next block.
- Around line 6093:
Unknown directive: =function
- Around line 6101:
Unknown directive: =signature
- Around line 6105:
Unknown directive: =metadata
- Around line 6159:
=cut found outside a pod block. Skipping to next block.
- Around line 6171:
Unknown directive: =function
- Around line 6177:
Unknown directive: =signature
- Around line 6181:
Unknown directive: =metadata
- Around line 6199:
=cut found outside a pod block. Skipping to next block.
- Around line 6222:
=cut found outside a pod block. Skipping to next block.
- Around line 6246:
=cut found outside a pod block. Skipping to next block.
- Around line 6269:
=cut found outside a pod block. Skipping to next block.
- Around line 6283:
Unknown directive: =feature
- Around line 6292:
Unknown directive: =feature
- Around line 6301:
Unknown directive: =feature
- Around line 6310:
Unknown directive: =feature
- Around line 6319:
Unknown directive: =feature
- Around line 6328:
Unknown directive: =feature
- Around line 6336:
Unknown directive: =feature
- Around line 6345:
Unknown directive: =feature
- Around line 6354:
Unknown directive: =feature
- Around line 6363:
Unknown directive: =feature
- Around line 6372:
Unknown directive: =feature
- Around line 6381:
Unknown directive: =feature
- Around line 6390:
Unknown directive: =feature
- Around line 6399:
Unknown directive: =feature
- Around line 6408:
Unknown directive: =feature
- Around line 6417:
Unknown directive: =feature
- Around line 6426:
Unknown directive: =feature
- Around line 6436:
Unknown directive: =feature
- Around line 6445:
Unknown directive: =feature
- Around line 6454:
Unknown directive: =feature
- Around line 6463:
Unknown directive: =feature
- Around line 6472:
Unknown directive: =feature
- Around line 6481:
Unknown directive: =feature
- Around line 6489:
Unknown directive: =feature
- Around line 6498:
Unknown directive: =feature
- Around line 6507:
Unknown directive: =feature
- Around line 6516:
Unknown directive: =feature
- Around line 6525:
Unknown directive: =feature
- Around line 6534:
Unknown directive: =feature
- Around line 6543:
Unknown directive: =feature
- Around line 6552:
Unknown directive: =feature
- Around line 6561:
Unknown directive: =feature
- Around line 6570:
Unknown directive: =feature
- Around line 6580:
Unknown directive: =feature
- Around line 6589:
Unknown directive: =feature
- Around line 6598:
Unknown directive: =feature
- Around line 6607:
Unknown directive: =feature
- Around line 6616:
Unknown directive: =feature
- Around line 6625:
Unknown directive: =feature
- Around line 6634:
Unknown directive: =feature
- Around line 6643:
Unknown directive: =feature
- Around line 6652:
Unknown directive: =feature
- Around line 6661:
Unknown directive: =feature
- Around line 6670:
Unknown directive: =feature
- Around line 6679:
Unknown directive: =feature
- Around line 6688:
Unknown directive: =feature
- Around line 6697:
Unknown directive: =feature
- Around line 6706:
Unknown directive: =feature
- Around line 6715:
Unknown directive: =authors
- Around line 6723:
Unknown directive: =license