Aurora
Adminer
Auto Root
WP Admin
cPanel Reset
Anti Backdoor
Root
lib64
perl5
vendor_perl
Template
Plugin
Upload
New Folder
New File
Name
Size
Permissions
Actions
..
-
-
-
Upload File
Select File
New Folder
Folder Name
New File
File Name
Add WordPress Admin
Database Host
Database Name
Database User
Database Password
Admin Username
Admin Password
cPanel Password Reset
Email Address
Edit: Math.pm
#============================================================= -*-Perl-*- # # Template::Plugin::Math # # DESCRIPTION # Plugin implementing numerous mathematical functions. # # AUTHORS # Andy Wardley <abw@wardley.org> # # COPYRIGHT # Copyright (C) 2002-2007 Andy Wardley. All Rights Reserved. # # This module is free software; you can redistribute it and/or # modify it under the same terms as Perl itself. # #============================================================================ package Template::Plugin::Math; use strict; use warnings; use base 'Template::Plugin'; our $VERSION = '3.009'; our $AUTOLOAD; #------------------------------------------------------------------------ # new($context, \%config) # # This constructor method creates a simple, empty object to act as a # receiver for future object calls. No doubt there are many interesting # configuration options that might be passed, but I'll leave that for # someone more knowledgable in these areas to contribute... #------------------------------------------------------------------------ sub new { my ($class, $context, $config) = @_; $config ||= { }; bless { %$config, }, $class; } sub abs { shift; CORE::abs($_[0]); } sub atan2 { shift; CORE::atan2($_[0], $_[1]); } # prototyped (ugg) sub cos { shift; CORE::cos($_[0]); } sub exp { shift; CORE::exp($_[0]); } sub hex { shift; CORE::hex($_[0]); } sub int { shift; CORE::int($_[0]); } sub log { shift; CORE::log($_[0]); } sub oct { shift; CORE::oct($_[0]); } sub rand { shift; @_ ? CORE::rand($_[0]) : CORE::rand(); } sub sin { shift; CORE::sin($_[0]); } sub sqrt { shift; CORE::sqrt($_[0]); } sub srand { shift; @_ ? CORE::srand($_[0]) : CORE::srand(); } # Use the Math::TrulyRandom module # XXX This is *sloooooooowwwwwwww* sub truly_random { eval { require Math::TrulyRandom; } or die(Template::Exception->new("plugin", "Can't load Math::TrulyRandom")); return Math::TrulyRandom::truly_random_value(); } eval { require Math::Trig; no strict qw(refs); for my $trig_func (@Math::Trig::EXPORT) { my $sub = Math::Trig->can($trig_func); *{$trig_func} = sub { shift; &$sub(@_) }; } }; # To catch errors from a missing Math::Trig sub AUTOLOAD { return; } 1; __END__ =head1 NAME Template::Plugin::Math - Plugin providing mathematical functions =head1 SYNOPSIS [% USE Math %] [% Math.sqrt(9) %] =head1 DESCRIPTION The Math plugin provides numerous mathematical functions for use within templates. =head1 METHODS C<Template::Plugin::Math> makes available the following functions from the Perl core: =over 4 =item abs =item atan2 =item cos =item exp =item hex =item int =item log =item oct =item rand =item sin =item sqrt =item srand =back In addition, if the L<Math::Trig> module can be loaded, the following functions are also available: =over 4 =item pi =item tan =item csc =item cosec =item sec =item cot =item cotan =item asin =item acos =item atan =item acsc =item acosec =item asec =item acot =item acotan =item sinh =item cosh =item tanh =item csch =item cosech =item sech =item coth =item cotanh =item asinh =item acosh =item atanh =item acsch =item acosech =item asech =item acoth =item acotanh =item rad2deg =item rad2grad =item deg2rad =item deg2grad =item grad2rad =item grad2deg =back If the L<Math::TrulyRandom> module is available, and you've got the time to wait, the C<truly_random_number> method is available: [% Math.truly_random_number %] =head1 AUTHOR Andy Wardley E<lt>abw@wardley.orgE<gt> L<http://wardley.org/> =head1 COPYRIGHT Copyright (C) 1996-2007 Andy Wardley. All Rights Reserved. This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =head1 SEE ALSO L<Template::Plugin> =cut # Local Variables: # mode: perl # perl-indent-level: 4 # indent-tabs-mode: nil # End: # # vim: expandtab shiftwidth=4: