Venus::Data - Data Class
Data Class for Perl 5
package main; use Venus::Data; my $data = Venus::Data->new('t/data/sections'); # $data->find(undef, 'name');
This package provides methods for extracting DATA sections and POD blocks from any file or package. The package can be configured to parse either POD or DATA blocks, and it defaults to being configured for POD blocks.
DATA
__DATA__ # data syntax @@ name Example Name @@ end @@ titles #1 Example Title #1 @@ end @@ titles #2 Example Title #2 @@ end
__DATA__ # data syntax (nested) @@ nested Example Nested +@@ demo blah blah blah +@@ end @@ end
# pod syntax =head1 NAME Example #1 =cut =head1 NAME Example #2 =cut # pod-ish syntax =name Example #1 =cut =name Example #2 =cut
# pod syntax (nested) =nested Example #1 +=head1 WHY? blah blah blah +=cut More information on the same topic as was previously mentioned in the previous section demonstrating the topic, obviously from said section. =cut
This package inherits behaviors from:
Venus::Path
This package provides the following methods:
count(hashref $criteria) (number)
The count method uses the criteria provided to "search" for and return the number of blocks found.
Since 0.01
0.01
# given: synopsis; my $count = $data->docs->count; # 6
# given: synopsis; my $count = $data->text->count; # 3
data() (string)
The data method returns the text between the DATA and END sections of a Perl package or file.
END
# given: synopsis; $data = $data->data; # ...
docs() (Venus::Data)
The docs method configures the instance for parsing POD blocks.
# given: synopsis; my $docs = $data->docs; # bless({ etag => "=cut", from => "read", stag => "=", ... }, "Venus::Data")
find(maybe[string] $list, maybe[string] $name) (arrayref)
The find method is a wrapper around "search" as shorthand for searching by list and name.
list
name
# given: synopsis; my $find = $data->docs->find(undef, 'name'); # [ # { data => ["Example #1"], index => 4, list => undef, name => "name" }, # { data => ["Example #2"], index => 5, list => undef, name => "name" }, # ]
# given: synopsis; my $find = $data->docs->find('head1', 'NAME'); # [ # { data => ["Example #1"], index => 1, list => "head1", name => "NAME" }, # { data => ["Example #2"], index => 2, list => "head1", name => "NAME" }, # ]
# given: synopsis; my $find = $data->text->find(undef, 'name'); # [ # { data => ["Example Name"], index => 1, list => undef, name => "name" }, # ]
# given: synopsis; my $find = $data->text->find('titles', '#1'); # [ # { data => ["Example Title #1"], index => 2, list => "titles", name => "#1" }, # ]
The search method returns the set of blocks matching the criteria provided. This method can return a list of values in list-context.
# given: synopsis; my $search = $data->docs->search({list => undef, name => 'name'}); # [ # { data => ["Example #1"], index => 4, list => undef, name => "name" }, # { data => ["Example #2"], index => 5, list => undef, name => "name" }, # ]
# given: synopsis; my $search = $data->docs->search({list => 'head1', name => 'NAME'}); # [ # { data => ["Example #1"], index => 1, list => "head1", name => "NAME" }, # { data => ["Example #2"], index => 2, list => "head1", name => "NAME" }, # ]
# given: synopsis; my $find = $data->text->search({list => undef, name => 'name'}); # [ # { data => ["Example Name"], index => 1, list => undef, name => "name" }, # ]
# given: synopsis; my $search = $data->text->search({list => 'titles', name => '#1'}); # [ # { data => ["Example Title #1"], index => 2, list => "titles", name => "#1" }, # ]
string(maybe[string] $list, maybe[string] $name) (string)
The string method is a wrapper around "find" as shorthand for searching by list and name, returning only the strings found.
Since 1.67
1.67
# given: synopsis; my $string = $data->docs->string(undef, 'name'); # "Example #1\nExample #2"
# given: synopsis; my $string = $data->docs->string('head1', 'NAME'); # "Example #1\nExample #2"
# given: synopsis; my $string = $data->text->string(undef, 'name'); # "Example Name"
# given: synopsis; my $string = $data->text->string('titles', '#1'); # "Example Title #1"
# given: synopsis; my @string = $data->docs->string('head1', 'NAME'); # ("Example #1", "Example #2")
text() (Venus::Data)
The text method configures the instance for parsing DATA blocks.
# given: synopsis; my $text = $data->text; # bless({ etag => '@@ end', from => 'data', stag => '@@ ', ... }, "Venus::Data")
Awncorp, awncorp@cpan.org
awncorp@cpan.org
Copyright (C) 2000, 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.
To install Venus, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Venus
CPAN shell
perl -MCPAN -e shell install Venus
For more information on module installation, please visit the detailed CPAN module installation guide.