in reply to What does this mean?

You are trying to use $q as a reference to an anonymous sub. I would expect some code above that line to look something like:
my $q = sub { my $var = shift; # 'lang' in this case return 1; }
You would then call the above subroutine using $q as the reference.
$q->('lang'); # one way &{$q}('lang'); # another way
Also, you can find out what kind of a reference $q is with the following (after $q is defined and assigned)
print ref($q);
I don't know what this has to do with CGI.pm unless you assigned $q as a CGI class reference, and you're using it wrong, or re-assigned it or something...

Perhaps you just forgot to put the sub's name in your statement... for instance:

$q->h1('lang'); # instead of $q->('lang')
--
Casey