[CDBI] left argument has no overloaded magic

Rolf Schaufelberger <[email protected]> Wed, 29 Aug 2007 18:53:44 +0200
Newsgroups gmane.comp.lang.perl.modules.class-dbi
Organization plusW
Message-ID <[email protected]>
Hi, 
I get the follwing error message:

Operation `eq': no method found,
left argument has no overloaded magic,
right argument in overloaded package PW::DB::ArticleGroup 
at /perl/lib/PW/Objects.pm line 138.
context:  	
...  	
134:  	$class->require;
135:  	my $obj = $class->retrieve($_->obj_id);
136:  	next OBJECTS if ($obj->can('active') && $obj->active == 0);
137:  	foreach (keys %{ $param{filter} }) {
138:  	next OBJECTS unless $param{filter}->{$_} eq $obj->$_;
139:  	}
140:  	push @collection, $obj;
141:  	}
142:  	

for better understaning of the code above:

This code fetches some objects from a  table , this table has the class and 
and id ($_->obj_id) of a target class ( $class )  and it does some filtering 
on the results form the target table. It works fine as long as the filter 
column is no foreign key, but if so, it sometime works(!!)  and it sometimes 
throws this error above.
Here $class is 'PW::DB::Article' , which is has a column 
article_group_id  that  has_a ('article_group_id', 'PW::DB::ArticleGroup')
The param-hash filter is   
	{article_group_id => 4 } 
so it does more or less 

my $obj =  PW::DB::Article->retrieve ( $id );
...
next if  4  eq $obj->article_group_id;

any idea ?

Regards
Rolf Schaufelberger