Server IP : 103.119.228.120 / Your IP : 3.145.163.138 Web Server : Apache System : Linux v8.techscape8.com 3.10.0-1160.119.1.el7.tuxcare.els2.x86_64 #1 SMP Mon Jul 15 12:09:18 UTC 2024 x86_64 User : nobody ( 99) PHP Version : 5.6.40 Disable Function : shell_exec,symlink,system,exec,proc_get_status,proc_nice,proc_terminate,define_syslog_variables,syslog,openlog,closelog,escapeshellcmd,passthru,ocinum cols,ini_alter,leak,listen,chgrp,apache_note,apache_setenv,debugger_on,debugger_off,ftp_exec,dl,dll,myshellexec,proc_open,socket_bind,proc_close,escapeshellarg,parse_ini_filepopen,fpassthru,exec,passthru,escapeshellarg,escapeshellcmd,proc_close,proc_open,ini_alter,popen,show_source,proc_nice,proc_terminate,proc_get_status,proc_close,pfsockopen,leak,apache_child_terminate,posix_kill,posix_mkfifo,posix_setpgid,posix_setsid,posix_setuid,dl,symlink,shell_exec,system,dl,passthru,escapeshellarg,escapeshellcmd,myshellexec,c99_buff_prepare,c99_sess_put,fpassthru,getdisfunc,fx29exec,fx29exec2,is_windows,disp_freespace,fx29sh_getupdate,fx29_buff_prepare,fx29_sess_put,fx29shexit,fx29fsearch,fx29ftpbrutecheck,fx29sh_tools,fx29sh_about,milw0rm,imagez,sh_name,myshellexec,checkproxyhost,dosyayicek,c99_buff_prepare,c99_sess_put,c99getsource,c99sh_getupdate,c99fsearch,c99shexit,view_perms,posix_getpwuid,posix_getgrgid,posix_kill,parse_perms,parsesort,view_perms_color,set_encoder_input,ls_setcheckboxall,ls_reverse_all,rsg_read,rsg_glob,selfURL,dispsecinfo,unix2DosTime,addFile,system,get_users,view_size,DirFiles,DirFilesWide,DirPrintHTMLHeaders,GetFilesTotal,GetTitles,GetTimeTotal,GetMatchesCount,GetFileMatchesCount,GetResultFiles,fs_copy_dir,fs_copy_obj,fs_move_dir,fs_move_obj,fs_rmdir,SearchText,getmicrotime MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/local/ssl/local/ssl/local/ssl/local/ssl/local/lib64/perl5/Template/Plugin/ |
Upload File : |
#============================================================= -*-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 = 1.16; 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]); } sub sin { shift; CORE::sin($_[0]); } sub sqrt { shift; CORE::sqrt($_[0]); } sub srand { shift; CORE::srand($_[0]); } # 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: