in reply to CGI and why?

In general, Sifmole, I tend to agree with you.

However, one possible justification is if the variable $q is not in scope at the time (or rather, place) the values are needed. Perhaps something like this:
my $name; my $real_name; sub get_params { my $q = new CGI; $name = $q->param('user_name'); $real_name = $q->param('real_name'); } sub print_params { print "Name: $name\nReal Name: $realname\n"; }

jdporter
The 6th Rule of Perl Club is -- There is no Rule #6.