Я не знаю, что вы имеете в виду, используя JavaScript escape. Браузеры будут правильно кодировать значения полей формы, а CGI.pm правильно их декодирует.
Например,
#!/usr/bin/perl
use strict; use warnings;
use CGI;
my $cgi = CGI->new;
if ( $cgi->param ) {
process_form($cgi);
}
else {
show_form($cgi);
}
sub process_form {
my ($cgi) = @_;
print $cgi->header('text/plain'),
$cgi->param('entry'), "\n";
}
sub show_form {
my ($cgi) = @_;
print $cgi->header, <<EO_HTML;
<!DOCTYPE HTML>
<html><head><title>Test +</title></head>
<body><form>
<input name="entry"><input type="submit">
</form></body></html>
EO_HTML
}
Выходные данные, которые я получаю при отправке этой формы с 2+2=4
в поле ввода:
2+2=4