| Server IP : 172.67.220.81 / Your IP : 216.73.216.81 Web Server : Apache System : Linux semi1.us.cloudlogin.co 5.10.244-xeon-hst #1 SMP Sun Sep 14 17:09:20 UTC 2025 x86_64 User : xessglobal ( 271017) PHP Version : 8.1.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : ON Directory : /lib64/perl5/vendor_perl/HTML/Template/Pro/ |
Upload File : |
package HTML::Template::Pro::WrapAssociate;
use strict;
use Carp;
use vars qw($VERSION @ISA);
sub _wrap {
my ($class, $associate_object, $is_case_sensitive, $is_strict_compatibility) = @_;
if (ref($associate_object) && UNIVERSAL::can($associate_object,'param')) {
my %hash;
if ($is_case_sensitive) {
tie %hash, $class, $associate_object;
} else {
foreach my $key ($associate_object->param()) {
$hash{lc($key)} = $associate_object->param($key);
}
}
return \%hash;
} elsif (!$is_strict_compatibility && UNIVERSAL::isa($associate_object,'HASH')) {
if ($is_case_sensitive) {
return $associate_object;
} else {
my %hash;
foreach my $key (keys(%$associate_object)) {
$hash{lc($key)} = $associate_object->{$key};
}
return \%hash;
}
} else {
Carp::croak "bad value for associate: HTML::Template::Pro->new called with associate option, containing object of type " . ref($associate_object) . " which lacks a param() method and does not look like a hash!";
}
}
sub param {
my $this = shift;
return $this->[0]->param(@_);
}
sub TIEHASH {
my ($class, $associate) = @_;
my $self=[$associate,[]];
return bless $self, $class;
};
sub FETCH {
my ($this, $key) = @_;
return $this->[0]->param($key);
}
sub EXISTS {
my ($this, $key) = @_;
return defined($this->[0]->param($key));
}
sub FIRSTKEY{
my ($this) = @_;
my @param=$this->[0]->param();
$this->[1]=\@param;
return shift @{$this->[1]};
}
sub NEXTKEY{
my ($this) = @_;
return shift @{$this->[1]};
}
sub STORE{}
sub DELETE{}
sub CLEAR{}
sub SCALAR{}
1;
__END__
#head1 NAME
HTML::Template::Pro::WrapAssociate - internal wrapper for associated objects
#head1 DESCRIPTION
Original HTML::Template has an 'associate' option, that allows to specify
an extra places whare to look for a variable value. They should have custom
'param' interface method, see L<HTML::Template::PerlInterface> for details.
This module wraps an object with custom 'param' interface method
into a magic tied hash.
Note that this module is for internal use only.
#head1 AUTHOR
I. Vlasenko, E<lt>[email protected]<gt>
#head1 COPYRIGHT AND LICENSE
Copyright (C) 2005-2009 by I. Yu. Vlasenko.
Pieces of code in Pro.pm and documentation of HTML::Template are
copyright (C) 2000-2002 Sam Tregar ([email protected])
The template syntax, interface conventions and a large piece of documentation
of HTML::Template::AssociateProWrapper are based on CPAN module HTML::Template
by Sam Tregar, [email protected].
This library is free software; you can redistribute it and/or modify it
under either the LGPL2+ or under the same terms as Perl itself,
either Perl version 5.8.4 or, at your option, any later version of Perl 5
you may have available.
#cut