sub query { my $self = shift; my ($query) = @_; # We're only allowed to set a new query object if one does not yet exist! unless (exists($self->{__QUERY_OBJ})) { my $new_query_obj; # If data is provided, set it! Otherwise, create a new one. if (defined($query) && $query->isa('CGI')) { $new_query_obj = $query; } else { $CGI::POST_MAX=1024 * 100; # max 100K posts $new_query_obj = CGI->new(); } $self->{__QUERY_OBJ} = $new_query_obj; } return $self->{__QUERY_OBJ}; }