<!DOCTYPE html><html><head><meta property="mw:TimeUuid" content="06e37a30-f112-11ed-91e0-9fd47882f894"/><meta charset="utf-8"/><meta property="mw:pageId" content="1343786"/><meta property="mw:pageNamespace" content="0"/><link rel="dc:replaces" resource="mwr:revision/1104307436"/><meta property="mw:revisionSHA1" content="eab2b57fb9064e401f9b7f53895e130d7f94be8d"/><meta property="dc:modified" content="2023-05-12T22:12:03.000Z"/><meta property="mw:htmlVersion" content="2.7.0"/><meta property="mw:html:version" content="2.7.0"/><title>CGI.pm - WikiMili, The Best Wikipedia Reader</title><meta property="mw:moduleStyles" content="ext.pygments|ext.cite.style|ext.cite.styles"/><meta href="/w/load.php?lang=en&amp;modules=ext.pygments%7Cext.cite.style%7Cext.cite.styles%7Cmediawiki.skinning.content.parsoid%7Cmediawiki.skinning.interface%7Csite.styles&amp;only=styles&amp;skin=vector"/><meta http-equiv="content-language" content="en"/><meta http-equiv="vary" content="Accept"/><link rel="canonical" href="https://wikimili.com/en/CGI.pm"/><link rel="stylesheet" href="/a.css"/><meta name="YahooSeeker" content="INDEX, FOLLOW"/><meta name="msnbot" content="INDEX, FOLLOW"/><meta name="googlebot" content="INDEX, FOLLOW"/><meta name="robots" content="index, follow"/><meta name="viewport" content="width=device-width"><meta property="og:type" content="article"/><meta property="og:site_name" content="WikiMili.com"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:domain" content="WikiMili.com"/><meta name="twitter:site" content="@wikimili"/><meta name="description" content="CGI.pm is a large and once widely used Perl module for programming Common Gateway Interface (CGI) web applications, providing a consistent API for receiving and processing user input. There are also functions for producing HTML or XHTML output, but these are now unmaintained and are to be avoided. C"/><meta property="og:description" content="CGI.pm is a large and once widely used Perl module for programming Common Gateway Interface (CGI) web applications, providing a consistent API for receiving and processing user input. There are also functions for producing HTML or XHTML output, but these are now unmaintained and are to be avoided. C"/><meta name="twitter:description" content="CGI.pm is a large and once widely used Perl module for programming Common Gateway Interface (CGI) web applications, providing a consistent API for receiving and processing user input. There are also functions for producing HTML or XHTML output, but these are now unmaintained and are to be avoided. C"/><meta property="og:title" content="CGI.pm - WikiMili, The Best Wikipedia Reader"/><meta name="twitter:title" content="CGI.pm - WikiMili, The Best Wikipedia Reader"/><meta property="og:url" content="https://wikimili.com/en/CGI.pm"/><meta name="twitter:url" content="https://wikimili.com/en/CGI.pm"/><script type="text/javascript" src="/a.js"></script></head><body id="mwAA" lang="en" class="mw-content-ltr sitedir-ltr ltr mw-body-content parsoid-body mediawiki mw-parser-output" dir="ltr"><div id="header"> <a id="miliLogo" href="https://wikimili.com">WikiMili</a> </div><h1 id="firstHeading" class="firstHeading" lang="en">CGI.pm</h1><span class="updated-holder">Last updated <time class="updated" datetime="2023-05-13">May 13, 2023</time></span><section data-mw-section-id="0" id="mwAQ"><style data-mw-deduplicate="TemplateStyles:r1097763485" typeof="mw:Extension/templatestyles mw:Transclusion" about="#mwt1" data-mw="{&quot;parts&quot;:[{&quot;template&quot;:{&quot;target&quot;:{&quot;wt&quot;:&quot;primary sources&quot;,&quot;href&quot;:&quot;./Template:Primary_sources&quot},&quot;params&quot;:{&quot;date&quot;:{&quot;wt&quot;:&quot;September 2011&quot}},&quot;i&quot;:0}}]}" id="mwAg">.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}html.client-js body.skin-minerva .mw-parser-output .mbox-text-span{margin-left:23px!important}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}</style><table class="box-Primary_sources plainlinks metadata ambox ambox-content ambox-Primary_sources" role="presentation" about="#mwt1"><tbody><tr><td class="mbox-image"><div class="mbox-image-div"><span typeof="mw:File"> <a onclick="showImg(this)" id="Question_book-new.svg" class="mw-file-description"><img resource="./File:Question_book-new.svg" src="//upload.wikimedia.org/wikipedia/en/thumb/9/99/Question_book-new.svg/50px-Question_book-new.svg.png" decoding="async" data-file-width="512" data-file-height="399" data-file-type="drawing" height="39" width="50" srcset="//upload.wikimedia.org/wikipedia/en/thumb/9/99/Question_book-new.svg/75px-Question_book-new.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/9/99/Question_book-new.svg/100px-Question_book-new.svg.png 2x" alt="Question book-new.svg"/></a> </span></div></td><td class="mbox-text"><div class="mbox-text-span">This article <b>relies excessively on <a rel="mw:WikiLink" target="_blank" href="//en.wikipedia.org/wiki/Wikipedia:Verifiability" title="Wikipedia:Verifiability">references</a> to <a rel="mw:WikiLink" target="_blank" href="//en.wikipedia.org/wiki/Wikipedia:No_original_research#Primary,_secondary_and_tertiary_sources" title="Wikipedia:No original research">primary sources</a> </b>.<span class="hide-when-compact"> Please improve this article by adding <a rel="mw:WikiLink" target="_blank" href="//en.wikipedia.org/wiki/Wikipedia:No_original_research#Primary,_secondary_and_tertiary_sources" title="Wikipedia:No original research">secondary or tertiary sources</a>. <br/><small><span class="plainlinks"><i>Find sources:</i><span typeof="mw:Entity">&#160;</span> <a rel="mw:ExtLink nofollow" href="//www.google.com/search?as_eq=wikipedia&amp;q=%22CGI.pm%22" class="external text">"CGI.pm"</a> <span typeof="mw:Entity">&#160;</span>&#8211;<span typeof="mw:Entity">&#160;</span> <a rel="mw:ExtLink nofollow" href="//www.google.com/search?tbm=nws&amp;q=%22CGI.pm%22+-wikipedia&amp;tbs=ar:1" class="external text">news</a>&#160;<b>&#183;</b> <a rel="mw:ExtLink nofollow" href="//www.google.com/search?&amp;q=%22CGI.pm%22&amp;tbs=bkt:s&amp;tbm=bks" class="external text">newspapers</a>&#160;<b>&#183;</b> <a rel="mw:ExtLink nofollow" href="//www.google.com/search?tbs=bks:1&amp;q=%22CGI.pm%22+-wikipedia" class="external text">books</a>&#160;<b>&#183;</b> <a rel="mw:ExtLink nofollow" href="//scholar.google.com/scholar?q=%22CGI.pm%22" class="external text">scholar</a>&#160;<b>&#183;</b> <a rel="mw:ExtLink nofollow" href="https://www.jstor.org/action/doBasicSearch?Query=%22CGI.pm%22&amp;acc=on&amp;wc=on" class="external text">JSTOR</a> </span></small></span><span class="date-container"><i>(<span class="date">September 2011</span>)</i></span><span class="hide-when-compact"><i> (<small> <a rel="mw:WikiLink" class="new" data-href="//en.wikipedia.org/wiki/Help:Maintenance_template_removal" title="Help:Maintenance template removal">Learn how and when to remove this template message</a> </small>)</i></span></div></td></tr></tbody></table><link rel="mw:PageProp/Category" target="_blank" href="//en.wikipedia.org/wiki/Category:Articles_lacking_reliable_references_from_September_2011" about="#mwt1"/><link rel="mw:PageProp/Category" target="_blank" href="//en.wikipedia.org/wiki/Category:All_articles_lacking_reliable_references" about="#mwt1" id="mwAw"/><style data-mw-deduplicate="TemplateStyles:r1066479718" typeof="mw:Extension/templatestyles mw:Transclusion" about="#mwt4" data-mw="{&quot;parts&quot;:[{&quot;template&quot;:{&quot;target&quot;:{&quot;wt&quot;:&quot;Infobox software\n&quot;,&quot;href&quot;:&quot;./Template:Infobox_software&quot},&quot;params&quot;:{&quot;name&quot;:{&quot;wt&quot;:&quot;CGI.pm&quot},&quot;logo&quot;:{&quot;wt&quot;:&quot;&quot},&quot;screenshot&quot;:{&quot;wt&quot;:&quot;&quot},&quot;caption&quot;:{&quot;wt&quot;:&quot;&quot},&quot;author&quot;:{&quot;wt&quot;:&quot;[[Lincoln Stein]]&quot},&quot;developer&quot;:{&quot;wt&quot;:&quot;Lee Johnson&quot},&quot;released&quot;:{&quot;wt&quot;:&quot;&quot},&quot;latest release version&quot;:{&quot;wt&quot;:&quot;4.21&quot},&quot;latest release date&quot;:{&quot;wt&quot;:&quot;2015-06-22&quot},&quot;latest preview version&quot;:{&quot;wt&quot;:&quot;&quot},&quot;latest preview date&quot;:{&quot;wt&quot;:&quot;&quot},&quot;operating system&quot;:{&quot;wt&quot;:&quot;&quot},&quot;platform&quot;:{&quot;wt&quot;:&quot;[[Perl]]&quot},&quot;language&quot;:{&quot;wt&quot;:&quot;&quot},&quot;genre&quot;:{&quot;wt&quot;:&quot;[[Perl module]] for [[Common Gateway Interface|CGI]]&quot},&quot;license&quot;:{&quot;wt&quot;:&quot;&quot},&quot;website&quot;:{&quot;wt&quot;:&quot;{{URL|https://metacpan.org/release/CGI}}&quot}},&quot;i&quot;:0}}]}" id="mwBA">.mw-parser-output .infobox-subbox{padding:0;border:none;margin:-3px;width:auto;min-width:100%;font-size:100%;clear:none;float:none;background-color:transparent}.mw-parser-output .infobox-3cols-child{margin:auto}.mw-parser-output .infobox .navbar{font-size:100%}body.skin-minerva .mw-parser-output .infobox-header,body.skin-minerva .mw-parser-output .infobox-subheader,body.skin-minerva .mw-parser-output .infobox-above,body.skin-minerva .mw-parser-output .infobox-title,body.skin-minerva .mw-parser-output .infobox-image,body.skin-minerva .mw-parser-output .infobox-full-data,body.skin-minerva .mw-parser-output .infobox-below{text-align:center}</style><table class="infobox vevent" about="#mwt4" id="mwBQ"><caption class="infobox-title summary">CGI.pm</caption><tbody><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"> <a rel="mw:WikiLink" href="./Programmer" title="Programmer">Original author(s)</a> </th><td class="infobox-data"> <a rel="mw:WikiLink" href="./Lincoln_Stein" title="Lincoln Stein">Lincoln Stein</a> </td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"> <a rel="mw:WikiLink" href="./Programmer" title="Programmer">Developer(s)</a> </th><td class="infobox-data">Lee Johnson</td></tr><tr style="display: none;"><td colspan="2" class="infobox-full-data"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1066479718" about="#mwt8" typeof="mw:Extension/templatestyles" data-mw="{&quot;name&quot;:&quot;templatestyles&quot;,&quot;attrs&quot;:{&quot;src&quot;:&quot;Module:Infobox/styles.css&quot;},&quot;body&quot;:{&quot;extsrc&quot;:&quot;&quot;}}"/></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"> <a rel="mw:WikiLink" href="./Software_release_life_cycle" title="Software release life cycle">Stable release</a> </th><td class="infobox-data"><div style="margin:0px;">4.21    / 2015-06-22</div></td></tr><tr style="display:none"><td colspan="2"></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"> <a rel="mw:WikiLink" href="./Computing_platform" title="Computing platform">Platform</a> </th><td class="infobox-data"> <a rel="mw:WikiLink" href="./Perl" title="Perl">Perl</a> </td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"> <a rel="mw:WikiLink" href="./Software_categories#Categorization_approaches" title="Software categories">Type</a> </th><td class="infobox-data"> <a rel="mw:WikiLink" href="./Perl_module" title="Perl module">Perl module</a> for <a rel="mw:WikiLink" href="./Common_Gateway_Interface" title="Common Gateway Interface">CGI</a> </td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;">Website</th><td class="infobox-data"><span class="url"> <a rel="mw:ExtLink nofollow" href="https://metacpan.org/release/CGI" class="external text">metacpan<wbr/>.org<wbr/>/release<wbr/>/CGI</a> </span></td></tr></tbody></table><p id="mwBg"><b id="mwBw">CGI.pm</b> is a large and once widely used <a rel="mw:WikiLink" href="./Perl_module" title="Perl module" id="mwCA">Perl module</a> for <a rel="mw:WikiLink" href="./Computer_programming" title="Computer programming" id="mwCQ">programming</a> <a rel="mw:WikiLink" href="./Common_Gateway_Interface" title="Common Gateway Interface" id="mwCg">Common Gateway Interface</a> (CGI) <a rel="mw:WikiLink" title="WWW" class="mw-redirect" id="mwCw" onclick="openRedirectLink(&quot;WWW&quot;)">web</a> applications, providing a consistent <a rel="mw:WikiLink" title="Application programming interface" class="mw-redirect" id="mwDA" onclick="openRedirectLink(&quot;Application_programming_interface&quot;)">API</a> for receiving and processing user input. There are also functions for producing <a rel="mw:WikiLink" href="./HTML" title="HTML" id="mwDQ">HTML</a> or <a rel="mw:WikiLink" href="./XHTML" title="XHTML" id="mwDg">XHTML</a> output, but these are now unmaintained and are to be avoided.<sup about="#mwt14" class="mw-ref reference" id="cite_ref-auto_1-0"   data-mw="{&quot;name&quot;:&quot;ref&quot;,&quot;attrs&quot;:{&quot;name&quot;:&quot;auto&quot;},&quot;body&quot;:{&quot;id&quot;:&quot;mw-reference-text-cite_note-auto-1&quot;}}"> <a href="./CGI.pm#cite_note-auto-1" style="counter-reset: mw-Ref 1;" id="mwDw"><span class="mw-reflink-text" id="mwEA">[1]</span></a> </sup> CGI.pm was a core Perl module but has been removed as of v5.22 of Perl.<sup about="#mwt15" class="mw-ref reference" id="cite_ref-auto_1-1"   data-mw="{&quot;name&quot;:&quot;ref&quot;,&quot;attrs&quot;:{&quot;name&quot;:&quot;auto&quot;}}"> <a href="./CGI.pm#cite_note-auto-1" style="counter-reset: mw-Ref 1;" id="mwEQ"><span class="mw-reflink-text" id="mwEg">[1]</span></a> </sup> The module was written by <a rel="mw:WikiLink" href="./Lincoln_Stein" title="Lincoln Stein" id="mwEw">Lincoln Stein</a> and is now maintained by Lee Johnson.</p><h2 id="listHeader">Contents</h2><ul id="listClass"><li> <a href="#Examples">Examples</a> </li><li> <a href="#See_also">See also</a> </li><li> <a href="#References">References</a> </li><li> <a href="#External_links">External links</a> </li></ul><meta property="mw:PageProp/toc" data-mw="{&quot;autoGenerated&quot;:true}" id="mwFA"/></section><section data-mw-section-id="1" id="mwFQ"><h2 id="Examples">Examples</h2><p id="mwFg">Here is a simple CGI page, written in Perl using CGI.pm (in <a rel="mw:WikiLink" href="./Object-oriented_programming" title="Object-oriented programming" id="mwFw">object-oriented</a> style):</p><div class="mw-highlight mw-highlight-lang-perl mw-content-ltr" dir="ltr" typeof="mw:Extension/syntaxhighlight" about="#mwt17" data-mw="{&quot;name&quot;:&quot;syntaxhighlight&quot;,&quot;attrs&quot;:{&quot;lang&quot;:&quot;perl&quot;},&quot;body&quot;:{&quot;extsrc&quot;:&quot;\n#!/usr/bin/env perl\n\nuse strict;\nuse warnings;\n\nuse CGI;\n\nmy $cgi = CGI-&gt;new;\n\nprint $cgi-&gt;header('text/html');\n\nprint &lt;&lt; \&quot;EndOfHTML\&quot;;\n&lt;!DOCTYPE html&gt;\n&lt;html&gt;\n    &lt;head&gt;\n        &lt;title&gt;A Simple CGI Page&lt;/title&gt;\n        &lt;meta http-equiv=\&quot;Content-Type\&quot; content=\&quot;text/html; charset=iso-8859-1\&quot; /&gt;\n    &lt;/head&gt;\n    &lt;body&gt;\n        &lt;h1&gt;A Simple CGI Page&lt;/h1&gt;\n        &lt;form method=\&quot;post\&quot; enctype=\&quot;multipart/form-data\&quot;&gt;\n Name: &lt;input type=\&quot;text\&quot; name=\&quot;name\&quot;  /&gt;&lt;br /&gt;\n Age: &lt;input type=\&quot;text\&quot; name=\&quot;age\&quot;  /&gt;&lt;p&gt;\n            &lt;input type=\&quot;submit\&quot; name=\&quot;Submit!\&quot; value=\&quot;Submit!\&quot; /&gt;\n        &lt;/form&gt;\n        &lt;hr /&gt;\nEndOfHTML\n\nif ( my $name = $cgi-&gt;param('name') ) {\n print \&quot;Your name is $name.&lt;br /&gt;\&quot;;\n}\n\nif ( my $age = $cgi-&gt;param('age') ) {\n print \&quot;You are $age years old.\&quot;;\n}\n\nprint '&lt;/body&gt;&lt;/html&gt;';\n&quot;}}" id="mwGA"><pre id="mwGQ"><span id="mwGg"/><span class="ch" id="mwGw">#!/usr/bin/env perl</span><span class="k" id="mwHA">use</span><span class="w" id="mwHQ"></span><span class="nn" id="mwHg">strict</span><span class="p" id="mwHw">;</span><span class="k" id="mwIA">use</span><span class="w" id="mwIQ"></span><span class="nn" id="mwIg">warnings</span><span class="p" id="mwIw">;</span><span class="k" id="mwJA">use</span><span class="w" id="mwJQ"></span><span class="nn" id="mwJg">CGI</span><span class="p" id="mwJw">;</span><span class="k" id="mwKA">my</span><span class="w" id="mwKQ"></span><span class="nv" id="mwKg">$cgi</span><span class="w" id="mwKw"></span><span class="o" id="mwLA">=</span><span class="w" id="mwLQ"></span><span class="nn" id="mwLg">CGI</span><span class="o" id="mwLw">-&gt;</span><span class="k" id="mwMA">new</span><span class="p" id="mwMQ">;</span><span class="k" id="mwMg">print</span><span class="w" id="mwMw"></span><span class="nv" id="mwNA">$cgi</span><span class="o" id="mwNQ">-&gt;</span><span class="n" id="mwNg">header</span><span class="p" id="mwNw">(</span><span class="s" id="mwOA">'text/html'</span><span class="p" id="mwOQ">);</span><span class="k" id="mwOg">print</span><span class="w" id="mwOw"></span><span class="o" id="mwPA">&lt;&lt;</span><span class="w" id="mwPQ"></span><span class="s" id="mwPg">"EndOfHTML"</span><span class="p" id="mwPw">;</span><span class="o" id="mwQA">&lt;!</span><span class="n" id="mwQQ">DOCTYPE</span><span class="w" id="mwQg"></span><span class="n" id="mwQw">html</span><span class="o" id="mwRA">&gt;</span><span class="sr" id="mwRQ">&lt;html&gt;</span><span class="w" id="mwRg"></span><span class="sr" id="mwRw">&lt;head&gt;</span><span class="w" id="mwSA"></span><span class="sr" id="mwSQ">&lt;title&gt;</span><span class="n" id="mwSg">A</span><span class="w" id="mwSw"></span><span class="n" id="mwTA">Simple</span><span class="w" id="mwTQ"></span><span class="n" id="mwTg">CGI</span><span class="w" id="mwTw"></span><span class="n" id="mwUA">Page</span><span class="sr" id="mwUQ">&lt;/title&gt;</span><span class="w" id="mwUg"></span><span class="o" id="mwUw">&lt;</span><span class="n" id="mwVA">meta</span><span class="w" id="mwVQ"></span><span class="n" id="mwVg">http</span><span class="o" id="mwVw">-</span><span class="n" id="mwWA">equiv</span><span class="o" id="mwWQ">=</span><span class="s" id="mwWg">"Content-Type"</span><span class="w" id="mwWw"></span><span class="n" id="mwXA">content</span><span class="o" id="mwXQ">=</span><span class="s" id="mwXg">"text/html; charset=iso-8859-1"</span><span class="w" id="mwXw"></span><span class="o" id="mwYA">/&gt;</span><span class="w" id="mwYQ"></span><span class="sr" id="mwYg">&lt;/head&gt;</span><span class="w" id="mwYw"></span><span class="sr" id="mwZA">&lt;body&gt;</span><span class="w" id="mwZQ"></span><span class="sr" id="mwZg">&lt;h1&gt;</span><span class="n" id="mwZw">A</span><span class="w" id="mwaA"></span><span class="n" id="mwaQ">Simple</span><span class="w" id="mwag"></span><span class="n" id="mwaw">CGI</span><span class="w" id="mwbA"></span><span class="n" id="mwbQ">Page</span><span class="sr" id="mwbg">&lt;/h1&gt;</span><span class="w" id="mwbw"></span><span class="o" id="mwcA">&lt;</span><span class="n" id="mwcQ">form</span><span class="w" id="mwcg"></span><span class="n" id="mwcw">method</span><span class="o" id="mwdA">=</span><span class="s" id="mwdQ">"post"</span><span class="w" id="mwdg"></span><span class="n" id="mwdw">enctype</span><span class="o" id="mweA">=</span><span class="s" id="mweQ">"multipart/form-data"</span><span class="o" id="mweg">&gt;</span><span class="w" id="mwew"></span><span class="n" id="mwfA">Name:</span><span class="w" id="mwfQ"></span><span class="o" id="mwfg">&lt;</span><span class="n" id="mwfw">input</span><span class="w" id="mwgA"></span><span class="n" id="mwgQ">type</span><span class="o" id="mwgg">=</span><span class="s" id="mwgw">"text"</span><span class="w" id="mwhA"></span><span class="n" id="mwhQ">name</span><span class="o" id="mwhg">=</span><span class="s" id="mwhw">"name"</span><span class="w" id="mwiA"></span><span class="sr" id="mwiQ">/&gt;&lt;br /</span><span class="o" id="mwig">&gt;</span><span class="w" id="mwiw"></span><span class="n" id="mwjA">Age:</span><span class="w" id="mwjQ"></span><span class="o" id="mwjg">&lt;</span><span class="n" id="mwjw">input</span><span class="w" id="mwkA"></span><span class="n" id="mwkQ">type</span><span class="o" id="mwkg">=</span><span class="s" id="mwkw">"text"</span><span class="w" id="mwlA"></span><span class="n" id="mwlQ">name</span><span class="o" id="mwlg">=</span><span class="s" id="mwlw">"age"</span><span class="w" id="mwmA"></span><span class="o" id="mwmQ">/&gt;</span><span class="sr" id="mwmg">&lt;p&gt;</span><span class="w" id="mwmw"></span><span class="o" id="mwnA">&lt;</span><span class="n" id="mwnQ">input</span><span class="w" id="mwng"></span><span class="n" id="mwnw">type</span><span class="o" id="mwoA">=</span><span class="s" id="mwoQ">"submit"</span><span class="w" id="mwog"></span><span class="n" id="mwow">name</span><span class="o" id="mwpA">=</span><span class="s" id="mwpQ">"Submit!"</span><span class="w" id="mwpg"></span><span class="n" id="mwpw">value</span><span class="o" id="mwqA">=</span><span class="s" id="mwqQ">"Submit!"</span><span class="w" id="mwqg"></span><span class="o" id="mwqw">/&gt;</span><span class="w" id="mwrA"></span><span class="sr" id="mwrQ">&lt;/form&gt;</span><span class="w" id="mwrg"></span><span class="o" id="mwrw">&lt;</span><span class="n" id="mwsA">hr</span><span class="w" id="mwsQ"></span><span class="o" id="mwsg">/&gt;</span><span class="n" id="mwsw">EndOfHTML</span><span class="k" id="mwtA">if</span><span class="w" id="mwtQ"></span><span class="p" id="mwtg">(</span><span class="w" id="mwtw"></span><span class="k" id="mwuA">my</span><span class="w" id="mwuQ"></span><span class="nv" id="mwug">$name</span><span class="w" id="mwuw"></span><span class="o" id="mwvA">=</span><span class="w" id="mwvQ"></span><span class="nv" id="mwvg">$cgi</span><span class="o" id="mwvw">-&gt;</span><span class="n" id="mwwA">param</span><span class="p" id="mwwQ">(</span><span class="s" id="mwwg">'name'</span><span class="p" id="mwww">)</span><span class="w" id="mwxA"></span><span class="p" id="mwxQ">)</span><span class="w" id="mwxg"></span><span class="p" id="mwxw">{</span><span class="w" id="mwyA"></span><span class="k" id="mwyQ">print</span><span class="w" id="mwyg"></span><span class="s" id="mwyw">"Your name is $name.&lt;br /&gt;"</span><span class="p" id="mwzA">;</span><span class="p" id="mwzQ">}</span><span class="k" id="mwzg">if</span><span class="w" id="mwzw"></span><span class="p" id="mw0A">(</span><span class="w" id="mw0Q"></span><span class="k" id="mw0g">my</span><span class="w" id="mw0w"></span><span class="nv" id="mw1A">$age</span><span class="w" id="mw1Q"></span><span class="o" id="mw1g">=</span><span class="w" id="mw1w"></span><span class="nv" id="mw2A">$cgi</span><span class="o" id="mw2Q">-&gt;</span><span class="n" id="mw2g">param</span><span class="p" id="mw2w">(</span><span class="s" id="mw3A">'age'</span><span class="p" id="mw3Q">)</span><span class="w" id="mw3g"></span><span class="p" id="mw3w">)</span><span class="w" id="mw4A"></span><span class="p" id="mw4Q">{</span><span class="w" id="mw4g"></span><span class="k" id="mw4w">print</span><span class="w" id="mw5A"></span><span class="s" id="mw5Q">"You are $age years old."</span><span class="p" id="mw5g">;</span><span class="p" id="mw5w">}</span><span class="k" id="mw6A">print</span><span class="w" id="mw6Q"></span><span class="s" id="mw6g">'&lt;/body&gt;&lt;/html&gt;'</span><span class="p" id="mw6w">;</span></pre></div><p id="mw7A">This would print a very simple webform, asking for your name and age, and after having been submitted, redisplaying the form with the name and age displayed below it.  This sample makes use of CGI.pm's object-oriented abilities; it can also be done by calling functions directly, without the <style data-mw-deduplicate="TemplateStyles:r886049734" typeof="mw:Extension/templatestyles mw:Transclusion" about="#mwt18" data-mw="{&quot;parts&quot;:[{&quot;template&quot;:{&quot;target&quot;:{&quot;wt&quot;:&quot;mono&quot;,&quot;href&quot;:&quot;./Template:Mono&quot},&quot;params&quot;:{&quot;1&quot;:{&quot;wt&quot;:&quot;$cgi-&gt;&quot}},&quot;i&quot;:0}}]}" id="mw7Q">.mw-parser-output .monospaced{font-family:monospace,monospace}</style><span class="monospaced" about="#mwt18" id="mw7g">$cgi-&gt;</span>, however the necessary functions must be imported into the namespace of the script that requires access to those functions:</p><div class="mw-highlight mw-highlight-lang-perl mw-content-ltr" dir="ltr" typeof="mw:Extension/syntaxhighlight" about="#mwt22" data-mw="{&quot;name&quot;:&quot;syntaxhighlight&quot;,&quot;attrs&quot;:{&quot;lang&quot;:&quot;perl&quot;},&quot;body&quot;:{&quot;extsrc&quot;:&quot;\n#!perl\n\nuse strict;\nuse warnings;\nuse CGI qw/ :standard /;\n\nprint header('text/html');\n\n# ... HTML output same as above example\n\nif ( my $name = param('name') ) {\n print \&quot;Your name is $name.&lt;br /&gt;\&quot;;\n}\n\nif ( my $age = param('age') ) {\n print \&quot;You are $age years old.\&quot;;\n}\n\nprint '&lt;/body&gt;&lt;/html&gt;';\n&quot;}}" id="mw7w"><pre id="mw8A"><span id="mw8Q"/><span class="ch" id="mw8g">#!perl</span><span class="k" id="mw8w">use</span><span class="w" id="mw9A"></span><span class="nn" id="mw9Q">strict</span><span class="p" id="mw9g">;</span><span class="k" id="mw9w">use</span><span class="w" id="mw-A"></span><span class="nn" id="mw-Q">warnings</span><span class="p" id="mw-g">;</span><span class="k" id="mw-w">use</span><span class="w" id="mw_A"></span><span class="nn" id="mw_Q">CGI</span><span class="w" id="mw_g"></span><span class="sx" id="mw_w">qw/ :standard /</span><span class="p" id="mwAQA">;</span><span class="k" id="mwAQE">print</span><span class="w" id="mwAQI"></span><span class="n" id="mwAQM">header</span><span class="p" id="mwAQQ">(</span><span class="s" id="mwAQU">'text/html'</span><span class="p" id="mwAQY">);</span><span class="c1" id="mwAQc"># ... HTML output same as above example</span><span class="k" id="mwAQg">if</span><span class="w" id="mwAQk"></span><span class="p" id="mwAQo">(</span><span class="w" id="mwAQs"></span><span class="k" id="mwAQw">my</span><span class="w" id="mwAQ0"></span><span class="nv" id="mwAQ4">$name</span><span class="w" id="mwAQ8"></span><span class="o" id="mwARA">=</span><span class="w" id="mwARE"></span><span class="n" id="mwARI">param</span><span class="p" id="mwARM">(</span><span class="s" id="mwARQ">'name'</span><span class="p" id="mwARU">)</span><span class="w" id="mwARY"></span><span class="p" id="mwARc">)</span><span class="w" id="mwARg"></span><span class="p" id="mwARk">{</span><span class="w" id="mwARo"></span><span class="k" id="mwARs">print</span><span class="w" id="mwARw"></span><span class="s" id="mwAR0">"Your name is $name.&lt;br /&gt;"</span><span class="p" id="mwAR4">;</span><span class="p" id="mwAR8">}</span><span class="k" id="mwASA">if</span><span class="w" id="mwASE"></span><span class="p" id="mwASI">(</span><span class="w" id="mwASM"></span><span class="k" id="mwASQ">my</span><span class="w" id="mwASU"></span><span class="nv" id="mwASY">$age</span><span class="w" id="mwASc"></span><span class="o" id="mwASg">=</span><span class="w" id="mwASk"></span><span class="n" id="mwASo">param</span><span class="p" id="mwASs">(</span><span class="s" id="mwASw">'age'</span><span class="p" id="mwAS0">)</span><span class="w" id="mwAS4"></span><span class="p" id="mwAS8">)</span><span class="w" id="mwATA"></span><span class="p" id="mwATE">{</span><span class="w" id="mwATI"></span><span class="k" id="mwATM">print</span><span class="w" id="mwATQ"></span><span class="s" id="mwATU">"You are $age years old."</span><span class="p" id="mwATY">;</span><span class="p" id="mwATc">}</span><span class="k" id="mwATg">print</span><span class="w" id="mwATk"></span><span class="s" id="mwATo">'&lt;/body&gt;&lt;/html&gt;'</span><span class="p" id="mwATs">;</span></pre></div><p id="mwATw">Note: in many examples <var style="padding-right: 1px;" about="#mwt23"  data-mw="{&quot;parts&quot;:[{&quot;template&quot;:{&quot;target&quot;:{&quot;wt&quot;:&quot;var&quot;,&quot;href&quot;:&quot;./Template:Var&quot;},&quot;params&quot;:{&quot;1&quot;:{&quot;wt&quot;:&quot;$q&quot;}},&quot;i&quot;:0}}]}" id="mwAT0">$q</var>, short for query, is used to store a CGI object.</p></section><section data-mw-section-id="2" id="mwAT4"><h2 id="See_also">See also</h2><ul id="mwAT8"><li id="mwAUA"> <a rel="mw:WikiLink" href="./Mod_perl" title="Mod perl" id="mwAUE">mod_perl</a> </li></ul></section><section data-mw-section-id="3" id="mwAUI"><h2 id="relatedWikiArticles">Related Research Articles</h2><div class="wikiCardWrapper"><div class="wikiMiliCard wikiMiliParaCard" onclick="location.href=&quot;./Common_Gateway_Interface&quot;"><p>In computing, <b>Common Gateway Interface</b> (<b>CGI</b>) is an interface specification that enables web servers to execute an external program, typically to process user requests.</p></div><div class="wikiMiliCard " onclick="location.href=&quot;./Perl&quot;"><img src="https://upload.wikimedia.org/wikipedia/en/thumb/5/56/Perl_language_logo.svg/320px-Perl_language_logo.svg.png" alt="&lt;span class=&quot;mw-page-title-main&quot;&gt;Perl&lt;/span&gt; Interpreted programming language first released in 1987"/><p><b>Perl</b> is a family of two high-level, general-purpose, interpreted, dynamic programming languages. "Perl" refers to Perl 5, but from 2000 to 2019 it also referred to its redesigned "sister language", Perl 6, before the latter's name was officially changed to Raku in October 2019.</p></div><div class="wikiMiliCard wikiMiliParaCard" onclick="location.href=&quot;./ScriptBasic&quot;"><p><b>ScriptBasic</b> is a scripting language variant of BASIC. The source of the interpreter is available as a C program under the LGPL license.</p></div><div class="wikiMiliCard " onclick="location.href=&quot;./Doxygen&quot;"><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/c/c6/Doxygen-1.8.1.png/320px-Doxygen-1.8.1.png" alt="&lt;span class=&quot;mw-page-title-main&quot;&gt;Doxygen&lt;/span&gt; Free software for generating software documentation from source code"/><p><b>Doxygen</b> is a documentation generator and static analysis tool for software source trees. When used as a documentation generator, Doxygen extracts information from specially-formatted comments within the code. When used for analysis, Doxygen uses its parse tree to generate diagrams and charts of the code structure. Doxygen can cross reference documentation and code, so that the reader of a document can easily refer to the actual code.</p></div><div class="wikiMiliCard wikiMiliParaCard" onclick="location.href=&quot;./Perl_module&quot;"><p>A <b>Perl module</b> is a discrete component of software for the Perl programming language. Technically, it is a particular set of conventions for using Perl's package mechanism that has become universally adopted.</p></div><div class="wikiMiliCard wikiMiliParaCard" onclick="location.href=&quot;./Plain_Old_Documentation&quot;"><p><b>Plain Old Documentation</b> (<b>pod</b>) is a lightweight markup language used to document the Perl programming language as well as Perl modules and programs.</p></div><div class="wikiMiliCard wikiMiliParaCard" onclick="location.href=&quot;./JavaBeans&quot;"><p>In computing based on the Java Platform, <b>JavaBeans</b> is a technology developed by Sun Microsystems and released in 1996, as part of JDK 1.1.</p></div><div class="wikiMiliCard wikiMiliParaCard" onclick="location.href=&quot;./Web_Server_Gateway_Interface&quot;"><p>The <b>Web Server Gateway Interface</b> is a simple calling convention for web servers to forward requests to web applications or frameworks written in the Python programming language. The current version of WSGI, version 1.0.1, is specified in Python Enhancement Proposal (PEP) 3333.</p></div><div class="wikiMiliCard " onclick="location.href=&quot;./XMLHttpRequest&quot;"><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/5/5b/HTTP_logo.svg/320px-HTTP_logo.svg.png" alt="&lt;span class=&quot;mw-page-title-main&quot;&gt;XMLHttpRequest&lt;/span&gt; Web API to transfer data between a web browser and a web server"/><p><b>XMLHttpRequest</b> (<b>XHR</b>) is a JavaScript class containing methods to asynchronously transmit HTTP requests from a web browser to a web server. The methods allow a browser-based application to make a fine-grained server call and store the results in XMLHttpRequest's <code>responseText</code> attribute. The <i>XMLHttpRequest</i> class is a component of Ajax programming. Prior to Ajax, a HTML form needed to be completely sent to the server followed by a complete browser page refresh.</p></div><div class="wikiMiliCard " onclick="location.href=&quot;./Catalyst_%28software%29&quot;"><img src="https://upload.wikimedia.org/wikipedia/commons/7/73/Catalyst_logo3.png" alt="&lt;span class=&quot;mw-page-title-main&quot;&gt;Catalyst (software)&lt;/span&gt;"/><p><b>Catalyst</b> is an open source web application framework written in Perl, that closely follows the model&#8211;view&#8211;controller (MVC) architecture, and supports a number of experimental web patterns. It is written using Moose, a modern object system for Perl. Its design is heavily inspired by frameworks such as Ruby on Rails, Maypole, and Spring.</p></div><div class="wikiMiliCard wikiMiliParaCard" onclick="location.href=&quot;./Hooking&quot;"><p>In computer programming, the term <b>hooking</b> covers a range of techniques used to alter or augment the behaviour of an operating system, of applications, or of other software components by intercepting function calls or messages or events passed between software components. Code that handles such intercepted function calls, events or messages is called a <b>hook</b>.</p></div><div class="wikiMiliCard wikiMiliParaCard" onclick="location.href=&quot;./HTML_form&quot;"><p>A <b>webform</b>, <b>web form</b> or <b>HTML form</b> on a web page allows a user to enter data that is sent to a server for processing. Forms can resemble paper or database forms because web users fill out the forms using checkboxes, radio buttons, or text fields. For example, forms can be used to enter shipping or credit card data to order a product, or can be used to retrieve search results from a search engine.</p></div><div class="wikiMiliCard wikiMiliParaCard" onclick="location.href=&quot;./Boilerplate_code&quot;"><p>In computer programming, <b>boilerplate code</b>, or simply <b>boilerplate</b>, are sections of code that are repeated in multiple places with little to no variation. When using languages that are considered <i>verbose</i>, the programmer must write a lot of boilerplate code to accomplish only minor functionality.</p></div><div class="wikiMiliCard " onclick="location.href=&quot;./Comment_%28computer_programming%29&quot;"><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/7/75/CodeCmmt002.svg/320px-CodeCmmt002.svg.png" alt="&lt;span class=&quot;mw-page-title-main&quot;&gt;Comment (computer programming)&lt;/span&gt; Explanatory note in the source code of a computer program"/><p>In computer programming, a <b>comment</b> is a programmer-readable explanation or <i>annotation</i> in the source code of a computer program. They are added with the purpose of making the source code easier for humans to understand, and are generally ignored by compilers and interpreters. The syntax of comments in various programming languages varies considerably.</p></div><div class="wikiMiliCard wikiMiliParaCard" onclick="location.href=&quot;./JSDoc&quot;"><p><b>JSDoc</b> is a markup language used to annotate JavaScript source code files. Using comments containing JSDoc, programmers can add documentation describing the application programming interface of the code they're creating. This is then processed, by various tools, to produce documentation in accessible formats like HTML and Rich Text Format. The JSDoc specification is released under CC BY-SA 3.0, while its companion documentation generator and parser library is free software under the Apache License 2.0.</p></div><div class="wikiMiliCard " onclick="location.href=&quot;./Plack_%28software%29&quot;"><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/5/58/Mod_perl_plack.png/320px-Mod_perl_plack.png" alt="&lt;span class=&quot;mw-page-title-main&quot;&gt;Plack (software)&lt;/span&gt;"/><p><b>Plack</b> is a Perl web application programming framework inspired by Rack for Ruby and WSGI for Python, and it is the project behind the PSGI specification used by other frameworks such as Catalyst and Dancer. Plack allows for testing of Perl web applications without a live web server.</p></div><div class="wikiMiliCard wikiMiliParaCard" onclick="location.href=&quot;./HTML_attribute&quot;"><p><b>HTML attributes</b> are special words used inside the opening tag to control the element's behaviour. HTML attributes are a modifier of a <i>HTML element type</i>. An attribute either modifies the default functionality of an element type or provides functionality to certain element types unable to function correctly without them. In HTML syntax, an attribute is added to a <i>HTML start tag</i>.</p></div><div class="wikiMiliCard wikiMiliParaCard" onclick="location.href=&quot;./Outline_of_Perl&quot;"><p>The following outline is provided as an overview of and topical guide to the Perl programming language:</p></div><div class="wikiMiliCard " onclick="location.href=&quot;./Yesod_%28web_framework%29&quot;"><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/9/93/Yesod_Logo.svg/320px-Yesod_Logo.svg.png" alt="&lt;span class=&quot;mw-page-title-main&quot;&gt;Yesod (web framework)&lt;/span&gt;"/><p><b>Yesod</b> is a free and open-source web framework based on Haskell for productive development of type-safe, REST model based, high performance web applications, developed by Michael Snoyman et al.</p></div><div class="wikiMiliCard wikiMiliParaCard" onclick="location.href=&quot;./Ur_%28programming_language%29&quot;"><p><b>Ur</b> also called <b>Ur/Web</b> is a free and open-source functional programming language specific for web development, created by Adam Chlipala at the Massachusetts Institute of Technology that from a single program produces server code, browser client code and SQL code specific for the chosen database backend.</p></div></div><h2 id="References">References</h2><style data-mw-deduplicate="TemplateStyles:r1011085734" typeof="mw:Extension/templatestyles mw:Transclusion" about="#mwt24" data-mw="{&quot;parts&quot;:[{&quot;template&quot;:{&quot;target&quot;:{&quot;wt&quot;:&quot;Reflist&quot;,&quot;href&quot;:&quot;./Template:Reflist&quot},&quot;params&quot;:{},&quot;i&quot;:0}}]}" id="mwAUM">.mw-parser-output .reflist{font-size:90%;margin-bottom:0.5em;list-style-type:decimal}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}</style><div class="reflist   " about="#mwt24" id="mwAUQ"><div class="mw-references-wrap" typeof="mw:Extension/references" about="#mwt28" data-mw="{&quot;name&quot;:&quot;references&quot;,&quot;attrs&quot;:{&quot;group&quot;:&quot;&quot;,&quot;responsive&quot;:&quot;1&quot;},&quot;body&quot;:{&quot;html&quot;:&quot;&quot;}}" id="mwAUU"><ol class="mw-references references" id="mwAUY"><li about="#cite_note-auto-1" id="cite_note-auto-1"><span rel="mw:referencedBy" id="mwAUc"> <a href="./CGI.pm#cite_ref-auto_1-0" id="mwAUg"><span class="mw-linkback-text" id="mwAUk">1 </span></a> <a href="./CGI.pm#cite_ref-auto_1-1" id="mwAUo"><span class="mw-linkback-text" id="mwAUs">2 </span></a> </span><span id="mw-reference-text-cite_note-auto-1" class="mw-reference-text"><style data-mw-deduplicate="TemplateStyles:r1133582631" typeof="mw:Extension/templatestyles mw:Transclusion" about="#mwt11" data-mw="{&quot;parts&quot;:[{&quot;template&quot;:{&quot;target&quot;:{&quot;wt&quot;:&quot;Cite web&quot;,&quot;href&quot;:&quot;./Template:Cite_web&quot},&quot;params&quot;:{&quot;url&quot;:{&quot;wt&quot;:&quot;https://metacpan.org/dist/CGI/view/lib/CGI.pod&quot},&quot;title&quot;:{&quot;wt&quot;:&quot;CGI - Handle Common Gateway Interface requests and responses - metacpan.org&quot},&quot;website&quot;:{&quot;wt&quot;:&quot;metacpan.org&quot}},&quot;i&quot;:0}}]}" id="mwAUw">.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free a,.mw-parser-output .citation .cs1-lock-free a{background:url("//upload.wikimedia.org/wikipedia/commons/6/65/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited a,.mw-parser-output .id-lock-registration a,.mw-parser-output .citation .cs1-lock-limited a,.mw-parser-output .citation .cs1-lock-registration a{background:url("//upload.wikimedia.org/wikipedia/commons/d/d6/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription a,.mw-parser-output .citation .cs1-lock-subscription a{background:url("//upload.wikimedia.org/wikipedia/commons/a/aa/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("//upload.wikimedia.org/wikipedia/commons/4/4c/Wikisource-logo.svg")right 0.1em center/12px no-repeat}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:#d33}.mw-parser-output .cs1-visible-error{color:#d33}.mw-parser-output .cs1-maint{display:none;color:#3a3;margin-left:0.3em}.mw-parser-output .cs1-format{font-size:95%}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}</style><cite class="citation web cs1" about="#mwt11" id="mwAU0"> <a rel="mw:ExtLink nofollow" href="https://metacpan.org/dist/CGI/view/lib/CGI.pod" class="external text" id="mwAU4">"CGI - Handle Common Gateway Interface requests and responses - metacpan.org"</a>. <i id="mwAU8">metacpan.org</i>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=unknown&amp;rft.jtitle=metacpan.org&amp;rft.atitle=CGI+-+Handle+Common+Gateway+Interface+requests+and+responses+-+metacpan.org&amp;rft_id=https%3A%2F%2Fmetacpan.org%2Fdist%2FCGI%2Fview%2Flib%2FCGI.pod&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ACGI.pm" class="Z3988" about="#mwt11" id="mwAVA"/></span></li></ol></div></div></section><section data-mw-section-id="4" id="mwAVE"><h2 id="External_links">External links</h2><ul id="mwAVI"><li id="mwAVM"> <a rel="mw:ExtLink nofollow" href="https://metacpan.org/module/CGI" class="external text" id="mwAVQ">CGI.pm</a> <span typeof="mw:Entity" id="mwAVU">&#8211;</span> at the <a rel="mw:WikiLink" href="./CPAN" title="CPAN" id="mwAVY">CPAN</a> </li></ul><style data-mw-deduplicate="TemplateStyles:r1134653256" typeof="mw:Extension/templatestyles mw:Transclusion" about="#mwt29" data-mw="{&quot;parts&quot;:[{&quot;template&quot;:{&quot;target&quot;:{&quot;wt&quot;:&quot;Wikibooks&quot;,&quot;href&quot;:&quot;./Template:Wikibooks&quot},&quot;params&quot;:{&quot;1&quot;:{&quot;wt&quot;:&quot;Perl Programming&quot},&quot;2&quot;:{&quot;wt&quot;:&quot;CGI&quot}},&quot;i&quot;:0}}]}" id="mwAVc">.mw-parser-output .side-box{margin:4px 0;box-sizing:border-box;border:1px solid #aaa;font-size:88%;line-height:1.25em;background-color:#f9f9f9;display:flow-root}.mw-parser-output .side-box-abovebelow,.mw-parser-output .side-box-text{padding:0.25em 0.9em}.mw-parser-output .side-box-image{padding:2px 0 2px 0.9em;text-align:center}.mw-parser-output .side-box-imageright{padding:2px 0.9em 2px 0;text-align:center}@media(min-width:500px){.mw-parser-output .side-box-flex{display:flex;align-items:center}.mw-parser-output .side-box-text{flex:1}}@media(min-width:720px){.mw-parser-output .side-box{width:238px}.mw-parser-output .side-box-right{clear:right;float:right;margin-left:1em}.mw-parser-output .side-box-left{margin-right:1em}}</style><div class="side-box side-box-right plainlinks sistersitebox" about="#mwt29" id="mwAVg"><style data-mw-deduplicate="TemplateStyles:r1126788409" typeof="mw:Extension/templatestyles" about="#mwt33" data-mw="{&quot;name&quot;:&quot;templatestyles&quot;,&quot;attrs&quot;:{&quot;src&quot;:&quot;Plainlist/styles.css&quot},&quot;body&quot;:{&quot;extsrc&quot;:&quot;&quot}}">.mw-parser-output .plainlist ol,.mw-parser-output .plainlist ul{line-height:inherit;list-style:none;margin:0;padding:0}.mw-parser-output .plainlist ol li,.mw-parser-output .plainlist ul li{margin-bottom:0}</style><div class="side-box-flex"><div class="side-box-image"><span class="noviewer" typeof="mw:File"><span><img alt="Wikibooks-logo-en-noslogan.svg" resource="./File:Wikibooks-logo-en-noslogan.svg" src="//upload.wikimedia.org/wikipedia/commons/thumb/d/df/Wikibooks-logo-en-noslogan.svg/40px-Wikibooks-logo-en-noslogan.svg.png" decoding="async" data-file-width="400" data-file-height="400" data-file-type="drawing" height="40" width="40" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/d/df/Wikibooks-logo-en-noslogan.svg/60px-Wikibooks-logo-en-noslogan.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/d/df/Wikibooks-logo-en-noslogan.svg/80px-Wikibooks-logo-en-noslogan.svg.png 2x"/></span></span></div><div class="side-box-text plainlist">The Wikibook <i> <a rel="mw:WikiLink/Interwiki" href="https://en.wikibooks.org/wiki/Perl%20Programming" title="wikibooks:Perl Programming" class="extiw">Perl Programming</a> </i> has a page on the topic of: <i><b> <a rel="mw:WikiLink/Interwiki" href="https://en.wikibooks.org/wiki/Perl%20Programming/CGI" title="wikibooks:Perl Programming/CGI" class="extiw">CGI</a> </b></i></div></div></div><link rel="mw:PageProp/Category" target="_blank" href="//en.wikipedia.org/wiki/Category:Perl_modules" id="mwAVk"/><p id="mwAVo"><br id="mwAVs"/></p><style data-mw-deduplicate="TemplateStyles:r1012311289" typeof="mw:Extension/templatestyles mw:Transclusion" about="#mwt34" data-mw="{&quot;parts&quot;:[{&quot;template&quot;:{&quot;target&quot;:{&quot;wt&quot;:&quot;unix-stub&quot;,&quot;href&quot;:&quot;./Template:Unix-stub&quot},&quot;params&quot;:{},&quot;i&quot;:0}}]}" id="mwAVw">.mw-parser-output .asbox{position:relative;overflow:hidden}.mw-parser-output .asbox table{background:transparent}.mw-parser-output .asbox p{margin:0}.mw-parser-output .asbox p+p{margin-top:0.25em}.mw-parser-output .asbox-body{font-style:italic}.mw-parser-output .asbox-note{font-size:smaller}.mw-parser-output .asbox .navbar{position:absolute;top:-0.75em;right:1em;display:none}</style><div role="note" class="metadata plainlinks asbox stub" about="#mwt34" id="mwAV0"><table role="presentation"><tbody><tr class="noresize"><td><span typeof="mw:File"> <a onclick="showImg(this)" id="Poundexclam.svg" class="mw-file-description"><img alt="Poundexclam.svg" resource="./File:Poundexclam.svg" src="//upload.wikimedia.org/wikipedia/commons/thumb/1/13/Poundexclam.svg/30px-Poundexclam.svg.png" decoding="async" data-file-width="30" data-file-height="30" data-file-type="drawing" height="30" width="30" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/1/13/Poundexclam.svg/45px-Poundexclam.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/1/13/Poundexclam.svg/60px-Poundexclam.svg.png 2x"/></a> </span></td><td><p class="asbox-body">This <a rel="mw:WikiLink" href="./Unix" title="Unix">Unix</a>-related article is a <a rel="mw:WikiLink" target="_blank" href="//en.wikipedia.org/wiki/Wikipedia:Stub" title="Wikipedia:Stub">stub</a>. You can help Wikipedia by <a rel="mw:ExtLink" href="//en.wikipedia.org/w/index.php?title=CGI.pm&amp;action=edit" class="external text">expanding it</a>.</p></td></tr></tbody></table><style data-mw-deduplicate="TemplateStyles:r1129693374" typeof="mw:Extension/templatestyles" about="#mwt39" data-mw="{&quot;name&quot;:&quot;templatestyles&quot;,&quot;attrs&quot;:{&quot;src&quot;:&quot;Hlist/styles.css&quot},&quot;body&quot;:{&quot;extsrc&quot;:&quot;&quot}}">.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:":"}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" &#183;";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol&gt;li{counter-increment:listitem}.mw-parser-output .hlist ol&gt;li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol&gt;li:first-child::before,.mw-parser-output .hlist dt ol&gt;li:first-child::before,.mw-parser-output .hlist li ol&gt;li:first-child::before{content:" ("counter(listitem)"\a0 "}</style><style data-mw-deduplicate="TemplateStyles:r1063604349" typeof="mw:Extension/templatestyles" about="#mwt40" data-mw="{&quot;name&quot;:&quot;templatestyles&quot;,&quot;attrs&quot;:{&quot;src&quot;:&quot;Module:Navbar/styles.css&quot},&quot;body&quot;:{&quot;extsrc&quot;:&quot;&quot}}">.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a&gt;span,.mw-parser-output .navbar a&gt;abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}</style><div class="navbar plainlinks hlist navbar-mini"><ul><li class="nv-view"> <a rel="mw:WikiLink" class="new" data-href="//en.wikipedia.org/wiki/Template:Unix-stub" title="Template:Unix-stub"><abbr title="View this template">v</abbr></a> </li><li class="nv-talk"> <a rel="mw:WikiLink" href="./Template_talk:Unix-stub" title="Template talk:Unix-stub"><abbr title="Discuss this template">t</abbr></a> </li><li class="nv-edit"> <a rel="mw:ExtLink" href="//en.wikipedia.org/w/index.php?title=Template:Unix-stub&amp;action=edit" class="external text"><abbr title="Edit this template">e</abbr></a> </li></ul></div><link rel="mw:PageProp/Category" target="_blank" href="//en.wikipedia.org/wiki/Category:All_stub_articles"/><link rel="mw:PageProp/Category" target="_blank" href="//en.wikipedia.org/wiki/Category:Unix_stubs"/></div></section><div class="ref-link">This page is based on this <a target="_blank" href="//en.wikipedia.org/wiki/CGI.pm">Wikipedia article</a> <br>Text is available under the <a href="//creativecommons.org/licenses/by-sa/4.0/" target="_blank">CC BY-SA 4.0</a> license; additional terms may apply.<br>Images, videos and audio are available under their respective licenses.</div></body></html>