X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=dbsrgits%2FDBIx-Class.git;a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FResultSet.pm;h=7b659ef3bb6658db789baf6d1104cb069218d2f6;hp=f060d4558bb95304bb763db1b5e073da95b416eb;hb=43da768fcaf3e4ad27f8ad87bcd7ce3a6a596a32;hpb=8592e2d12adc3061b28c17766b47bf802cba58cd diff --git a/lib/DBIx/Class/ResultSet.pm b/lib/DBIx/Class/ResultSet.pm index f060d45..7b659ef 100644 --- a/lib/DBIx/Class/ResultSet.pm +++ b/lib/DBIx/Class/ResultSet.pm @@ -305,6 +305,7 @@ always return a resultset, even in list context. =cut +my $callsites_warned; sub search_rs { my $self = shift; @@ -370,8 +371,17 @@ sub search_rs { } if @_; - carp 'search( %condition ) is deprecated, use search( \%condition ) instead' - if (@_ > 1 and ! $self->result_source->result_class->isa('DBIx::Class::CDBICompat') ); + if( @_ > 1 and ! $self->result_source->result_class->isa('DBIx::Class::CDBICompat') ) { + # determine callsite obeying Carp::Clan rules (fucking ugly but don't have better ideas) + my $callsite = do { + my $w; + local $SIG{__WARN__} = sub { $w = shift }; + carp; + $w + }; + carp 'search( %condition ) is deprecated, use search( \%condition ) instead' + unless $callsites_warned->{$callsite}++; + } for ($old_where, $call_cond) { if (defined $_) {