Software Index
Linux Software Programming  


download download home home   report broken
important software information
company name:
Rob Symes
license: Freeware
minimum requirements:
functional limitations:
CGI::Panel description
CGI::Panel is a Perl module that allows applications to be built out of simple object-based components. It'll handle the state of your data and objects so you can write a web application just like a desktop app. You can forget about the http requests and responses, whether we're getting or posting, and all that stuff because that is all handled for you leaving to you interact with a simple API.

An application is constructed from a set of 'panels', each of which can contain other panels. The panels are managed behind the scenes as persistent objects. See the sample applications for examples of how complex object-based applications can be built from simple encapsulated components. To try the demo app, copy the contents of the 'demo' directory to a cgi-bin directory.

CGI::Panel allows you to design the logic of your application in an event-driven manner. That is, you set up your application the way you want it, with special buttons and links that trigger 'events'. The application then sits back and when an event is triggered, the code associated with that event is run. The code that responds to an event goes in the same class as the code that generates the event button or link, making the code more readable and maintainable. If the event code changes the state of any of the panels, the panels will then stay in the new state, until their state is changed again.

Each panel is encapsulated not only in terms of the code, but in terms of the form data that is passed through. For example a panel class can be defined which has a textfield called 'name'. Three instances of this panel can then exist simultaneously and each will get the correct value of the 'name' parameter when they read their parameters (see the 'local_params' method).


A very simple working application consisting of a driver cgi and two panel classes...

In simpleapp.cgi:

use SimpleApp;
my $simple_app = obtain SimpleApp;


package SimpleApp;

use base qw(CGI::Panel);
use Basket;

sub init {
my ($self) = @_;
$self->add_panel('basket1', new Basket); # Add a sub-panel
$self->add_panel('basket2', new Basket); # Add a sub-panel
$self->add_panel('basket3', new Basket); # Add a sub-panel
$self->{count} = 1; # Initialise some persistent data

sub _event_add { # Respond to the button click event below
my ($self, $event) = @_;

$self->{count}++; # Change the persistent data

sub display {
my ($self) = @_;

'This is a very simple app.

' .
# Display the persistent data...
"My current count is $self->{count}

" .
# Display the sub-panels...
"< table >< tr >" .
"< td >" . $self->panel('basket1')->display . "< /td >" .
"< td >" . $self->panel('basket2')->display . "< /td >" .
"< td >" . $self->panel('basket3')->display . "< /td >" .
"< /tr >< /table >" .
# Display a button that will generate an event...
$self->event_button(label => 'Add 1', name => 'add');



package Basket;

use base qw(CGI::Panel);

sub init {
my ($self) = @_;

$self->{contents} = [];

sub _event_add { # Respond to the button event in 'display'
my ($self, $event) = @_;

# Get panel's localised parameters
# (Many instances of this panel each get
# their own local parameters)
my %local_params = $self->local_params;

push @{$self->{contents}}, $local_params{item_name};

sub display {
my ($self) = @_;

'< table bgcolor="#CCCCFF" >' .
join('', (map { "< tr >< td >$_< /td >< /tr >" } @{$self->{contents}})) .
'< tr >' .
# Localised text field
'< td >' . $self->local_textfield({name => 'item_name', size => 10}) . '< /td >' .
# Button that will generate an event (handled by _event_add above). The CPAN Search Site - Publisher of CGI::Panel, Author of CGI::Panel 0.97. CGI::Panel is a Perl module that allows applications to be built out of simple object-based components. It'll handle the state of your data and objects so you can write a web applicatio
Similar software
CGI::Session::Driver::aggregator (Popularity: ) : CGI::Session::Driver::aggregator is a CGI::Session driver to aggregate some CGI::Session drivers.


use CGI::Session;
use CGI::Session::Driver::aggregator::Drivers;
use DBI;

$dbh = DBI->connect('DBI:mysql:cgi_session;host=localhost', 'root', '');
$drivers = CGI::Session::Driver::aggregator::Drivers->new;
$drivers->add('file', { Directory => '/tmp' });
$drivers->add('mysql', { Handle => $dbh });
$s = CGI::Session->new('driver:aggregator', $sid, ...

MYSQL DATA MANAGER (Popularity: ) : Mysql Data Manager is an advanced instrument for the online management of databases over the Web.
This is an all-inclusive web based mysql front end providing a powerful interface for databases management, development and maintenance. Easy installation and intuitive interface make ...

CGI::QuickForm (Popularity: ) : CGI::QuickForm is a Perl module that provides a quick and simple mechanism for providing on-line CGI forms.

When show_form executes it presents the form with the fields requested. As you can see from the minimal example at the beginning of the ...

django-dbpreferences (Popularity: ) : django-dbpreferences is a plugin for the Django web framework that allows you to store some app preferences into the database.

A django app defines a form with initial values. The form cleaned data dict would be stored serialized into the database. ...

Skypz NewsLine PRL v2.4 (Popularity: ) : Features of Skypz NewsLine PRL v2.4

1- Easy to install.
2- The administration/publishing interface is web browser-based, so it can be accessed from anywhere.
3- The site design can be completely customized.
4- Format content easily with the WYSIWYG ...

WebGUI (Popularity: ) : WebGUI is a content management framework built to allow average business users to build and maintain complex Web sites.

It is modular, pluggable, and platform independent. WebGUI was designed to allow the people who create the content to manage it online, ...

YATG (Popularity: ) : YATG is a Perl module which is intended to be run persistently. At intervals it will wake up and poll network devices for SNMP data, and then store or print that data. In this distribution are also included examples for ...
Apache::GTopLimit (Popularity: ) : Apache::GTopLimit is a Perl module that will run on platforms supported by a Perl interface to libgtop (which in turn needs libgtop).

This module was written in response to questions on the mod_perl mailing list on how to tell the ...

Bottle (Popularity: ) : Bottle is a fast, simple and useful one-file WSGI framework. It is not a full-stack framework with a ton of features, but a useful mirco-framework for small web-applications that stays out of your way.

Bottle only depends on the Python Standard ...

Business::iDEAL::Adyen (Popularity: ) : Business::iDEAL::Adyen is a Perl module that provides a backend to process iDEAL payments through (the non-HPP (Hosted Payment Pages) way).

A word of warning to start with (copied verbatim out of Adyen's iDEAL PDF):

iDeal API Payments are not enabled by ...

ConceptNet (Popularity: ) : ConceptNet is a Python API to a Semantic Network Representation of the Open Mind Common Sense Project.. . Publisher of ConceptNet, Author of ConceptNet 4.0b3. ConceptNet is a Python API to a Semantic Network Representation of the Open Mind Common ...
celery (Popularity: ) : celery is a distributed task queue framework for Django.


You can install celery either via the Python Package Index (PyPI) or from source.

To install using pip,:

$ pip install celery

To install using easy_install,:

$ easy_install celery

If you have downloaded a source tarball you ...

User reviews

Write a review:
1 2 3 4 5 6 7 8 9 10
1=poor 10=excellent
Write review*
Your name*
  (Comments are moderated, and will not appear on this site until the editor has approved them)
Similar scripts
Best Match Maker CGI Script for Sale! (Popularity: ) : World Best Match Maker CGI for Sale! / Match Maker is never been easier than before with the help of our Match Maker script. With the automatic system you wont have to worry about management. / Safely Buy this Script ...
Members Admin Cgi Pro (Popularity: ) : Members Admin Cgi Pro multi-platform compatible. This script is a professional and highly secured script for to password protect and managing the accounts from your members page. Option for auto approve members, fast form fields checking, tracks sharing passwords, logs ...
randomquote.cgi (Popularity: ) : randomquote.cgi is a simple and easy to use random text script written using Perl program. With this script you will be able to display different quotes on your webpage whenever it is refreshed. The script is features with a password ...
Fast Guest Book with Complete Admin Panel (Popularity: ) : Fast Guest Book is a "Dream-Solution" for all those people who want to get an Elegant Guest Book for their website in no time. Fast Guest Book is very easy to install module and user can install and customize it ... | cgi tools for your site. (Popularity: ) : CGI tools for your site's easy, unique and FREE !!
This is one of the best free CGI Web sites. It's well-designed, easy to navigate and serves up some extremely useful scripts. At, a free counter, voters poll, message board ...

83 PHP & CGI Scripts Package (Popularity: ) : This is a package collection of the following 83 popular scripts: 1) Banner Management and Tracking System 2) PHP Online Project Management Script 3) PHP Link Listing Script 4) PHP MySQL Yahoo Style Link Directory/Search Engine 5) PHP MySQL Website ...
Accordion Panel V3 (Popularity: ) : The new Accordion Panel V3 component from Jumpeye Creative Media is the following version of professional accordion panels. After the succes of the VAccordion Panel Pro V2 (vertical) and HAccordion Panel Pro V2 (horizontal) we built the Accordion Panel V3 ...
Sound Panel w Spectrum Effects & Fade (Popularity: ) : This component is very simple to use. Just drag the MovieClip into your Flash movie or application and your good to go! Full instructions for modifing anything are included.

Includes one of my other files:
Flash slide w easing info panel.
I used ...

Road Advertisement Panel Control (Popularity: ) : Road Advertisement Panel Control is a web-based system to record, and manage advertisement panels in the roads. Cross-platform application written in PHP. It uses a GIS component based on mapserver to visualize the advertisement panel locations.
Dynamic Scaler Panel (Popularity: ) : Never use free transform again, with this nifty little panel, you can scale your objects to the EXACT size that you want!
Rate me
supported os's
downloads 5
version 0.97
size in Kb 41
user rating 5/10
our rating 0 Stars
share info
Recommend CGI::Panel
Report spyware
New Software
Popular Software
Latest Reviews