Lincoln D. Stein


CGI::Toggle -- Utility methods for collapsible sections


use CGI ':standard'; use CGI::Toggle

print header(), start_html('Toggle Test'), h1("Toggle Test"), toggle_section({on=>1},p('This section is on by default'), toggle_section({on=>0},p('This section is off by default'), toggle_section({plus_img=>'/icons/open.png', minus_img=>'/icons/close.png'}, p('This section has custom open and close icons.')), hr, end_html;


This package adds JavaScript-based support for collapsible sections by adding a single new function toggle_section().

It overrides the CGI start_html() method, so CGI must be imported before bringing this module in.


($control,$content) = toggle_section([\%options],$section_title=>@section_content)

This method takes an optional \%options hashref, a section title and one or more strings containing the section content and returns a list of HTML fragments corresponding to the control link and the content. In a scalar context the control and content will be concatenated together.

The option keys are as follows:


If true, the section will be on (visible) by default. The default is false (collapsed).


URL of the icon to display next to the section title when the section is collapsed. The default is /gbrowse2/images/plus.png.


URL of the icon to display next to the section title when the section is expanded.. The default is /gbrowse2/images/minus.png.


If false (default), the state of the section will be remembered in a session variable. If true, the initial state will be taken from the b<on> option, ignoring the session.




Lincoln Stein <>.

Copyright (c) 2005 Cold Spring Harbor Laboratory

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See DISCLAIMER.txt for disclaimers of warranty.