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

Reply via email to