NAME
HTML::Perlinfo - Display a lot of Perl information in HTML format
SYNOPSIS
use HTML::Perlinfo;
perlinfo();
DESCRIPTION
This module outputs a large amount of information about your Perl installation in HTML. So far, this includes information about Perl compilation options, the Perl version, server information and environment, HTTP headers, OS version information, Perl modules, and more.
HTML::Perlinfo is aimed at Web developers, but almost anyone using Perl may find it useful. It is a valuable debugging tool as it contains all EGPCS (Environment, GET, POST, Cookie, Server) data.
The output may be customized by passing one of the following options.
OPTIONS
There are 8 options to pass to the perlinfo funtion. All of these options are also object methods. The key difference is their case: Captilize the option name when passing it to the function and use only lower-case letters when using the object-oriented approach.
- INFO_GENERAL
-
The configuration line, build date, Web Server, System and more.
- INFO_VARIABLES
-
Shows all predefined variables from EGPCS (Environment, GET, POST, Cookie, Server).
- INFO_CONFIG
-
All configuration values from config_sh. INFO_ALL shows only some values.
- INFO_APACHE
-
Apache HTTP server information, including mod_perl information.
- INFO_MODULES
-
All installed modules, their version number and much more. INFO_ALL shows only core modules. Please also see HTML::Perlinfo::Modules.
- INFO_LICENSE
-
Perl license information.
- INFO_CREDITS
-
Shows the credits for Perl, listing the Perl pumpkings, developers, module authors, etc.
- INFO_ALL
-
Shows all of the above defaults. This is the default value.
PROGRAMMING STYLE
There are two styles of programming with Perlinfo.pm, an function-oriented style and a object-oriented style.
Function-oriented style:
# Show all information, defaults to INFO_ALL
perlinfo();
# Show only module information. This shows all installed modules.
perlinfo(INFO_MODULES);
Object-oriented style:
$p = new HTML::Perlinfo;
$p->info_all;
# You can also set the CSS values in the constructor!
$p = HTML::Perlinfo->new(
bg_image => 'http://i104.photobucket.com/albums/m176/perlinfo/camel.gif',
bg_repeat => 'yes-repeat'
);
$p->info_all;
More examples ...
# This is wrong (no capitals)
$p->INFO_CREDITS;
# But this is correct
perlinfo(INFO_CREDITS);
# Ditto
$p->info_credits;
CUSTOMIZING THE HTML
You can capture the HTML output and manipulate it or you can alter CSS elements with object attributes.
For further details and examples, please see the HTML documentation in the HTML::Perlinfo distribution.
SECURITY
Displaying detailed server information on the internet is not a good idea and HTML::Perlinfo reveals a lot of information about the local environment. While restricting what system users can publish online is wise, you can also hinder them from using the module by installing it outside of the usual module directories (see perldoc -q lib). Of course, preventing users from installing the module in their own home directories is another matter entirely.
REQUIREMENTS
HTML::Perlinfo requires only 2 non-core modules. These 2 modules are:
App::Info - for some HTTPD information
File::Which - for searching the path
NOTES
Some might notice that HTML::Perlinfo shares the look and feel of the PHP function phpinfo. It was originally inspired by that function and was first released in 2004 as PHP::Perlinfo, which is no longer available on CPAN.
Since the module outputs HTML, you may want to use it in a CGI script, but you do not have to. Of course, some information, like HTTP headers, would not be available if you use the module at the command-line. If you decide to use this module in a CGI script, make sure you print out the content-type header beforehand.
BUGS
Please report any bugs or feature requests to bug-html-perlinfo@rt.cpan.org
, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=HTML-Perlinfo. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.
SEE ALSO
Perl Diver and Perl Digger are free CGI scripts that offer similar information.
Perl Diver: http://www.scriptsolutions.com/programs/free/perldiver/
Perl Digger: http://sniptools.com/perldigger
Other modules worth mentioning:
Config. You can also use "perl -V" to see a configuration summary at the command-line.
Apache::Status, App::Info, Probe::Perl, Module::CoreList, Module::Info, among others.
Also included in the Perlinfo distribution: HTML::Perlinfo::Modules
AUTHOR
Mike Accardo <mikeaccardo@yahoo.com>
COPYRIGHT
Copyright (c) 2006, Mike Accardo. All Rights Reserved.
This module is free software. It may be used, redistributed
and/or modified under the terms of the Perl Artistic License.