The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

PHP::Perlinfo - Clone of PHP's phpinfo function for Perl

SYNOPSIS

        use PHP::Perlinfo;

        perlinfo();

DESCRIPTION

This module outputs a large amount of information about the current state of Perl. So far, this includes information about Perl compilation options, the Perl version, server information and environment, HTTP headers, OS version information, Perl modules, and the Perl License.

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.

It is based on PHP's phpinfo function. Like other clones of PHP functions on CPAN, perlinfo attempts to mimic the PHP function is as many ways as possible. But, of course, there are some differences in the Perl version. These differences will be logged in future revisions.

PHP's phpinfo function is usually one of the first things a new PHP programmer learns. It is a very useful function for debugging and checking configuration settings. I expect that many users of this module will already know PHP's phpinfo. To familiarize yourself with phpinfo, you can google "phpinfo" and see the output for phpinfo in one of the many results. (I rather not provide a link that can go bad with the passage of time.)

OPTIONS

There are 6 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_LICENSE

Perl license information.

INFO_CONFIG

All configuration values from config_sh. Not all of the values shown in INFO_ALL.

INFO_APACHE

Apache HTTP server information.

INFO_MODULES

All installed modules, their version number and more. INFO_ALL shows only core modules.

INFO_VARIABLES

Shows all predefined variables from EGPCS (Environment, GET, POST, Cookie, Server).

INFO_CREDITS

Shows the credits for Perl, listing the Perl pumpkings, developers, module authors, etc.

INFO_ALL

Shows all of the above. This is the default value.

OBJECT METHODS

These object methods allow you to change the HTML CSS settings to achieve a stylish effect. You must pass them a parameter or your program will die. Please see your favorite HTML guide for acceptable CSS values. Refer to the HTML source code of perlinfo for the defaults.

Method name/Corresponding CSS element

 bg_image               / background_image
 bg_position            / background_position
 bg_repeat              / background_repeat
 bg_attribute           / background_attribute 
 bg_color               / background_color
 ft_family              / font_familty 
 ft_color               / font_color
 lk_color               / link color
 lk_decoration          / link text-decoration  
 lk_bgcolor             / link background-color 
 lk_hvdecoration        / link hover text-decoration 
 header_bgcolor         / table header background-color 
 header_ftcolor         / table header font color
 leftcol_bgcolor        / background-color of leftmost table cell  
 leftcol_ftcolor        / font color of left table cell
 rightcol_bgcolor       / background-color of right table cell  
 rightcol_ftcolor       / font color of right table cell

Remember that there are more methods (the info options listed above).

EXAMPLES

Function-oriented style:

        # Show all information, defaults to INFO_ALL
        perlinfo();

        # Show only module information
        perlinfo(INFO_MODULES);

Object-oriented style:

        $p = new PHP::Perlinfo;
        $p->bg_color("#eae5c8");
        $p->info_all;

        # You can also set the CSS values in the constructor!
        $p = PHP::Perlinfo->new(
                bg_image  => 'http://www.tropic.org.uk/~edward/ctrip/images/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;

NOTES

This module is still in the early stages of development. Many new additions and changes are planned.

Perlinfo still lacks features that are in the PHP version.

SEE ALSO

Config. You can also use "perl -V" to see a configuration summary.

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

You can also read the description of the original PHP version:

http://www.php.net/manual/en/function.phpinfo.php

AUTHOR

Mike Accardo <mikeaccardo@yahoo.com> Suggestions and comments welcomed.

COPYRIGHT

   Copyright (c) 2005, 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.