Heutzutage ist Perl eine typische Sprache um CGI Programme zu implementieren, da sie sehr mächtige Möglichkeiten zur einfachen Datenverwaltung und Stringmanipulation bietet, und selbstverständlich Schnittstellen zum System und auch zu Datenbanken bietet. Ein weiterer Vorteil ist, dass CGI mit nahezu jeder Webserversoftware möglich ist und sich auch Perl, obwohl ursprünglich aus der Unix-Welt stammend, heutzutage ebenso problemlos unter Windows und anderen Systemen betreiben lässt.
Diese Kombination, PERL und CGI, erscheint damit ideal für Managementaufgaben, und für einfache Aufgaben lassen sich damit tatsächlich sehr schnell Erfolge erzielen, hier ein Beispiel für ein Script das die aktuelle Uptime und Systemlast eines Unix-Hosts anzeigt:
#!/usr/bin/perl $|=1; $uptime=`/usr/bin/uptime`; chop($uptime); $host=`/bin/uname -n`; chop($host); print "Content-Type: text/vnd.wap.wml\n\n"; print '<?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"> <wml> <head> <meta http-equiv="Cache-Control" content="no-cache"/> </head> <card id="uptime" title="Uptime"> <do type="prev"><prev/></do> <p> Uptime on Host ' . $host . '<br/> ' . $uptime . '<br/> </p> </card> </wml> ';
Komplizierter wird es jedoch sobald nicht mehr einzelne unabhängige Anfragen gestellt werden, sondern eine Session aufgebaut werden soll z.B. um eine Authentifikation nur einmal durchführen zu müssen oder wenn Daten in mehreren Seiten nacheinander ausgegeben werden sollen, was aufgrund des WML-Deck Grössenlimits von 1400 Bytes oft nötig ist. Dies ist mit CGIs zwar möglich, man muss sich jedoch selbst um die ganzen Mechanismen wie die Vergabe und Speicherung einer Session ID kümmern.
Außerdem muss der gesamte WML Code durch print-Befehle oder ähnliches vom Script ausgegeben werden, was gerade für den nicht dynamischen Rahmencontent einer Seite unnötig umständlich ist.