Beta Shell
v2.0 ยท web2.us.cloudlogin.co
[FM]
[CMD]
[PHP]
[DB]
[INFO]
[SEC]
File Manager
~
/
usr
/
lib64
/
perl5
/
vendor_perl
/
HTML
/
Template
/
Pro
Upload
3 items
Name
Size
Perms
Modified
Actions
[ .. / .. ]
WrapAssociate.pm
2.73 KB
-rw-r--r--
2011-07-01 10:23:03
Edit
Del
Editing: WrapAssociate.pm
(2.73 KB)
Path: /usr/lib64/perl5/vendor_perl/HTML/Template/Pro/WrapAssociate.pm
Back
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>viy@altlinux.orgE<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 (sam@tregar.com) 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, sam@tregar.com. 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