To add to
gellyfish's comment if you had strict and warnings on you would have been alerted to a stray 'i' (see the comment below). There were other quoting issues too (also commented). I've taken the liberty of adding some white space. I don't know if it will now do what you want but at least it compiles which imo is a good start. :-)
#!/bin/perl5
use strict;
use warnings;
my $JSCRIPT=<<END; # added my
var cal = new CalendarPopup("testdiv");
cal.setCssPrefix("TEST");
cal.showYearNavigation();
END
my $JSCRIPT2=<<END2; # added my
writeSource("jscal1");
END2
print start_html(
-style=>{
-src=>[
'/styles/print.css','/styles/yreg_lite_v5.css'
],
-media => 'all'
},
-title=>'MIS - People Data',
-script=>[
{
-language => 'JavaScript',
#-src => i '/javascript/ValidateForm.js'
-src => '/javascript/ValidateForm.js' # removed the i
},
{
-language => 'JavaScript',
-src => '/javascript/CalendarPopup.js'
},
{
-language => 'JavaScript',
-src => '/javascript/AnchorPosition.js'
},
{
-language => 'JavaScript',
-src => '/javascript/date.js'
},
{
-language => 'JavaScript',
-src => '/javascript/PopupWindow.js'
},
{
-id=>'jscal1',
-code=>$JSCRIPT
},
$JSCRIPT2
]
);
print table(
{
-width=>'97%',
-cellpadding=>4,
-cellspacing=>5
},
Tr(
{
-align=>'RIGHT', # quotes added
-valign=>'TOP' # quotes added
},
td(
submit(
-name=>'Update',
-value=>'Update',
-onClick('ValidateForm(this.form)') # quotes added
)
)
)
);