[Dancer-users] How to use dancer functions in other modules
Brian E. Lozier
brian at massassi.com
Tue Mar 8 03:43:33 CET 2011
Well I think I hit "send" too soon. The problem is that I have a
"params" METHOD already defined in this form class. When I import
Dancer it seems to override that method. Is there a way to only
import the logging functions and not all the Dancer functions?
Thanks!
On Mon, Mar 7, 2011 at 6:40 PM, Brian E. Lozier <brian at massassi.com> wrote:
> I have some modules for form generation and processing that aren't
> Dancer classes (in that they don't contain any routes). Inside these
> I'd like to use some of the dancer functions like "params." When I
> "use Dancer" at the top of one of these modules I am getting a really
> odd error message.
>
> runtime error
>
> Operation "eq": no method found,
> left argument in overloaded package Fan::Form::Register,
> right argument has no overloaded magic at
> /usr/local/lib/perl5/site_perl/5.12.3/Dancer/Request.pm line 177.
>
> /usr/local/lib/perl5/site_perl/5.12.3/Dancer/Request.pm around line 177
>
> 174 return %{$self->{params}} if wantarray && @_ == 1;
> 175 return $self->{params} if @_ == 1;
> 176
> 177 if ($source eq 'query') {
> 178 return %{$self->{_query_params}} if wantarray;
> 179 return $self->{_query_params};
> 180 }
>
> In my main Dancer class, Fan::Web, I have a route sub that says:
>
> my $params = params();
>
> I then pass this hashref into my form module like this:
>
> my $form = Fan::Form::Register->new($params);
>
> If I don't "use Dancer" in the form module, all works well. If I "use
> Dancer;" in the form module I get the error message. I am trying to
> use Dancer so I can use the debug/warning functions. I don't
> understand the error message. I have an overloaded "" operator in the
> form class (to return an HTML representation of the form) but I don't
> know how calling the params() function in my main Dancer routes class
> (Fan::Web) and then passing the hashref into my form class can cause
> an error like this. Any thoughts?
>
> Thanks,
> Brian
>
More information about the Dancer-users
mailing list