find data Ответов: 1

Почему моя следующая подпрограмма выдает ошибку?


syntax error at Script line 19, near "queue_name)" syntax error at Script line 39, near "}" Script had compilation errors. syntax error at /proj/in/db.cgi line 879, near "queue_name)"


Что я уже пробовал:

<pre>sub print_overall_summary  
{

  my $str = shift;
  $DBH = &connect or die "Cannot connect to the sql server \n";
  $DBH->do("USE $str;");
  my $stmt="select queue_name,jobs_pending,jobs_running from queues order by time desc ;";
  ;
  my $sth = $DBH->prepare( $stmt );
  $sth->execute() or print "Could not prepare_overall_summarydata";
  print "<script language=\"javascript\" type=\"text/javascript\"> \n"
; 
  print "\$(document).ready(function(){ \n";
  %TABLE_DATA =();   
  my @sys=qw/Adice Incisive Spectre Vcs Calibre Others/; 
  my $table = $sth->fetchall_hashref; 
  for my $r (@$table) { 
    my $name='Others'; 
    for my $s (@sys){ 
      if ($r->{queue_name)=~m/$s/i) {$name=$s; last;} 
      } 
    $TABLE_DATA{$name}{jobs_pending}+=$r->{jobs_pending};  
    $TABLE_DATA{$name}{jobs_running}+=$r->{jobs_running}; 
    } 
  for my $var(qw/running pending/) { 
    my @parts=(); 
    for my $s (@sys){ 
      push @parts,'["'.$s.'",'
                  .$TABLE_DATA{$s}{'jobs_'.$var}
                  .']'; 
      } 
    print 'var data_'.$var.'=['.join(',',@parts).']'."\n"; 
    } 
  print   " \n pieChart(\"placeholder39\",data_running,{title:\"<ce
nter>Jobs Running</center>\"});\n";
  print   " \n pieChart(\"placeholder41\",data_pending,{title:\"<ce
nter>Jobs Pending</center>\"});\n";
  print "});";
  print "</script>";
}

Richard MacCutchan

Сообщения об ошибках говорят вам, что не так. Вам нужно исправить синтаксические ошибки.

find data

В приведенном выше примере я использовал правильный синтаксис.Я не мог понять, в чем проблема, с каким синтаксисом?

1 Ответов

Рейтинг:
1

Richard MacCutchan

if ($r->{queue_name)=~m/$s/i) {$name=$s; last;}

Несоответствующие разделители.


find data

тем не менее ошибки, которые я включил, имеют место.

Richard MacCutchan

Посмотрите на ошибки, посмотрите на код, соответствует ли он документации, все ли правильно написано, все ли разделители правильны ... ? Это называется диагностикой проблемы, навыком, которому вы должны научиться.