A ver... hay que tener las ideas claras...
La confección del código HTML (y opcionalmente de algo de JavaScript) se puede hacer del lado del servidor o del cliente. Pero no necesariamente de los dos a la vez. Quiero decir que con uno de los dos métodos, suele valer.
Del lado del servidor, tenemos a Perl y algunos módulos que pueden generar hojas de calendario. Por ejemplo, tenemos
HTML::Shakan::Widgets::jQueryUIEntonces el CGI se ejecuta, generamos el código del calendario, y eso es lo que se manda al usuario.
Luego está la otra solución, del lado del cliente. Para ello tenemos soluciones JavaScript como JQuery y uno de sus widgets que es el
datepicker. Entonces lo que hacemos es crear, en nuestro código CGI, una plantilla, o el código HTML que contiene el JavaScript necesario para generar lo necesario para que el usuario vea un calendario interactivo en pantalla, que es justo la solución que estás mostrando.
Entonces... no necesitas ningún módulo de Perl para generar un selector de fechas porque eso es justo lo que te da JQuery.
El que no te funcione... podría ser por la presencia de '$' dentro del código HTML y Perl intenta hacer una interpolación como si esos símbolos fueran parte de variables Perl, debido a que EOF está entrecomillada doble.
Haz la prueba de cambiar las comillas dobles de la línea 5 por comillas simples. La comprobación la tendrás viendo la página resultado, en el navegador. Mira el código HTML recibido y verás si las línea 16 y 17 se han enviando tal y como aparecen en el código Perl.
Otro detalle que no me gusta es lo de que las URL comienzan por '//' en lugar del tradicional 'http://', pero bueno, así es como aparece en el ejemplo de JQuery, así que eso debe indicar una forma moderna de referirnos a código exterior a nuestro sitio web.
Más adelante, podrías investigar cómo sustituir todas esas líneas que has escrito por estas otras (bueno, no solo estas) con la ayuda de
HTML::JQueryUsing perl Syntax Highlighting
my $j = jquery sub {
datepicker '#datepicker' => ( dateFormat => 'dd-mm-yy', currentText => 'Now' );
};
Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4