title: perl called with 2 bind variables when 0 are needed
body: <p>i have this code:  </p>
  
  <pre><code>    my (@matches, @vars);  
  
      if ($date_to) {
              push(@matches, q{ m.mentioned_at &lt;= ? });
              push(@vars, $date_to);
          }
  
          if ($person) {
              push(@matches, q{ t.name like ? });
              push(@vars, $person);
          }
      if ($show) {
              push(@matches, q{ t.name like ? });
              push(@vars, $show);
          }  
      if (@vars){
          my $where = join (' and ', @matches);
          $where = qq{where $where} if @matches  
          $res = $db-&gt;do({ page =&gt; $.p, per_page =&gt; $.s }, q{
                        select m.id, m.body, m.link,
                        count(distinct(m.id)) as num_items
                        from mentions m
                        $where 
                        group by m.id, m.body, m.link,
                        order by m.created_at desc
                 }, @vars );
       }   
  
       print STDERR Dumper ($where);    
       $VAR1 = 'where  m.mentioned_at &lt;= ?  and  t.name like ? ';`  
       print STDERR Dumper (@vars);   
       $VAR1 = '2012/06/01';  
       $VAR2 = 'Adby Phil';`  
  </code></pre>
  
  <p>Why do i have this ERROR:</p>
  
  <pre><code>called with 2 bind variables when 0 are needed  
  Can't use an undefined value as an ARRAY reference 
  </code></pre>
  
  <p>It seems like it does not see the $where clause.</p>