Template::Stash::ForceUTF8 - Force UTF-8 (Unicode) flag on stash variables


Template-Provider-Encoding documentation Contained in the Template-Provider-Encoding distribution.

Index


Code Index:

NAME

Top

Template::Stash::ForceUTF8 - Force UTF-8 (Unicode) flag on stash variables

SYNOPSIS

Top

  use Template::Stash::ForceUTF8;
  use Template;

  my $tt = Template->new(
      LOAD_TEMPLATES => [ Template::Provider::Encoding->new ],
      STASH => Template::Stash::ForceUTF8->new,
  );

  my $vars;
  $vars->{foo} = "\x{5bae}\x{5ddd}";         # Unicode flagged
  $vars->{bar} = "\xe5\xae\xae\xe5\xb7\x9d"; # UTF-8 bytes

  $tt->process($template, $vars); # this DWIMs

DESCRIPTION

Top

Template::Stash::ForceUTF8 is a Template::Stash that forces Unicode flag on stash variables. Best used with Template::Provider::Encoding.

SEE ALSO

Top

Template::Provider::Encoding


Template-Provider-Encoding documentation Contained in the Template-Provider-Encoding distribution.

package Template::Stash::ForceUTF8;

use strict;
our $VERSION = '0.03';

use Template::Config;
use base ( $Template::Config::STASH );
use Encode;

sub get {
    my $self = shift;
    my $result = $self->SUPER::get(@_);
    return $result if ref $result;

    Encode::_utf8_on($result) unless Encode::is_utf8($result);
    return $result;
}

1;
__END__