The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

 Tags::Utils::Preserve - Class to check if content in element is preserved?

SYNOPSIS

 use Tags::Utils::Preserve;

 my $obj = Tags::Utils::Preserve->new(%params);
 my $preserved_flag = $obj->begin($element);
 my ($preserved_flag, $prev_preserved_flag) = $obj->begin($element);
 my $preserved_flag = $obj->end($element);
 my ($preserved_flag, $prev_preserved_flag) = $obj->end($element);
 my $preserved_flag = $obj->get;
 my ($preserved_flag, $prev_preserved_flag) = $obj->get;
 $obj->reset;
 $obj->save_previous;

METHODS

new

 my $obj = Tags::Utils::Preserve->new(%params);

Constructor.

  • preserved

    Preserved elements.

    Default value is [].

Returns instance of object.

begin

 my $preserved_flag = $obj->begin($element);
 my ($preserved_flag, $prev_preserved_flag) = $obj->begin($element);

Process for begin of element.

Returns preserved flag in scalar context.

Returns preserved flag and previous preserved flag in array context.

end

 my $preserved_flag = $obj->end($element);
 my ($preserved_flag, $prev_preserved_flag) = $obj->end($element);

Process for end of element.

Returns preserved flag in scalar context.

Returns preserved flag and previous preserved flag in array context.

get

 my $preserved_flag = $obj->get;
 my ($preserved_flag, $prev_preserved_flag) = $obj->get;

Get preserved flag.

Returns preserved flag in scalar context.

Returns preserved flag and previous preserved flag in array context.

reset

 $obj->reset;

Resets.

Returns undef.

save_previous

 $obj->save_previous;

Save previous stay.

Returns undef.

ERRORS

 new():
         From Class::Utils::set_params():
                 Unknown parameter '%s'.

EXAMPLE

 use strict;
 use warnings;

 use Tags::Utils::Preserve;

 # Begin element helper.
 sub begin_helper {
         my ($pr, $element) = @_;
         print "ELEMENT: $element ";
         my ($pre, $pre_pre) = $pr->begin($element);
         print "PRESERVED: $pre PREVIOUS PRESERVED: $pre_pre\n";
 }
 
 # End element helper.
 sub end_helper {
         my ($pr, $element) = @_;
         print "ENDELEMENT: $element ";
         my ($pre, $pre_pre) = $pr->end($element);
         print "PRESERVED: $pre PREVIOUS PRESERVED: $pre_pre\n";
 
 }
 
 # Object.
 my $pr = Tags::Utils::Preserve->new(
         'preserved' => ['element']
 );
 
 # Process.
 begin_helper($pr, 'foo');
 begin_helper($pr, 'element');
 begin_helper($pr, 'foo');
 end_helper($pr, 'foo');
 end_helper($pr, 'element');
 end_helper($pr, 'foo');

 # Output:
 # ELEMENT: foo PRESERVED: 0 PREVIOUS PRESERVED: 0
 # ELEMENT: element PRESERVED: 1 PREVIOUS PRESERVED: 0
 # ELEMENT: foo PRESERVED: 1 PREVIOUS PRESERVED: 1
 # ENDELEMENT: foo PRESERVED: 1 PREVIOUS PRESERVED: 1
 # ENDELEMENT: element PRESERVED: 0 PREVIOUS PRESERVED: 1
 # ENDELEMENT: foo PRESERVED: 0 PREVIOUS PRESERVED: 0

DEPENDENCIES

Class::Utils, List::Util, Readonly.

SEE ALSO

Task::Tags

Install the Tags modules.

REPOSITORY

https://github.com/michal-josef-spacek/Tags

AUTHOR

Michal Josef Špaček mailto:skim@cpan.org

http://skim.cz/

LICENSE AND COPYRIGHT

© 2005-2024 Michal Josef Špaček

BSD 2-Clause License

VERSION

0.16