Util/Data-Section-Simple
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
NAME
Data::Section::Simple - Read data from __DATA__
SYNOPSIS
use Data::Section::Simple qw(get_data_section);
# Functional interface -- reads from caller package __DATA__
my $all = get_data_section; # All data in hash reference
my $foo = get_data_section('foo.html');
# OO - allows reading from other packages
my $reader = Data::Section::Simple->new($package);
my $all = $reader->get_data_section;
__DATA__
@@ foo.html
<html>
<body>Hello</body>
</html>
@@ bar.tt
[% IF true %]
Foo
[% END %]
DESCRIPTION
Data::Section::Simple is a simple module to extract data from "__DATA__"
section of the file.
LIMITATIONS
As the name suggests, this module is a simpler version of the excellent
Data::Section. If you want more functionalities such as merging data
sections or changing header patterns, use Data::Section instead.
This module does not implement caching (yet) which means in every
"get_data_section" or "get_data_section($name)" this module seeks and
re-reads the data section. If you want to avoid doing so for the better
performance, you should implement caching in your own caller code.
BUGS
If you data section has literal "__DATA__" in the data section, this
module might be tricked by that. Although since its pattern match is
greedy, "__DATA__" appearing *before* the actual data section (i.e. in
the code) might be okay.
This is by design -- in theory you can "tell" the DATA handle before
reading it, but then reloading the data section of the file (handy for
developing inline templates with PSGI web applications) would fail
because the pos would be changed.
If you don't like this design, again, use the superior Data::Section.
AUTHOR
Tatsuhiko Miyagawa <miyagawa@bulknews.net>
COPYRIGHT
Copyright 2010- Tatsuhiko Miyagawa
The code to read DATA section is based on Mojo::Command get_all_data:
Copyright 2008-2010 Sebastian Riedel
LICENSE
This library is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
SEE ALSO
Data::Section Inline::Files