First:
Can't modify subroutine entry in character translation at
...ESEC_VALIDATE.pm line 31, near "tr /[a-z]/[A-Z]/;"
The matching line is:
$q->params('company') =~ tr/[a-z]/[A-Z]/;
This line attempts to change the thing on the left hand side,
and perl doesn't see the thing on the left hand side as
modifiable.
Now, if instead you did:
$c = $q->params('company');
$c =~ tr/[a-z]/[A-Z]/;
perl will be happy. Presumably you would follow this with:
$q->params('company', $c);
to write the new value back to the 'company' field.
Perl has tricks that let some subs be "lvaluable" (able to be on
the left side of a modifying statement), eg:
substr($c, 0, 5) = 'foo';
but most subs are NOT yet lvaluable, even if that would be natural,
as it would in the case you have here.
--------------
Second:
syntax error at ESEC_VALIDATE.pm line 32, near ");"
The matching line is:
$q->params('company') = substr($q->params('company',0,30);
which is missing a closing parens. (It also looks like it's got other,
non-syntax, errors in it.)
--------------
hth