请教关于DBI和tk图形界面的问题

请教关于DBI和tk图形界面的问题

我用DBI连接起了数据库,并从中读取了数据,但在tk的图形界面上的文本中不能显示。不知道为什么?有哪位大哥知道的告诉一声,谢谢。在线等。。。。。。。。
注意编码问题。
能说的详细一点嘛?
sub do_input_entry{                                                                                       
  # clk signal block                                                                                       
  $pane = $mw -> Scrolled(Pane, Name => 'fred',-scrollbars => 'e',-sticky => 'we', -gridded => 'y');      
  #$pane -> xview($f_clk);    // error,can't use this "CALL",why?                                          
  #$pane->yview(moveto => 1)                                                                              
  $pane->pack(-side => 'right', -fill => 'y');                                                            
  $f_clk = $pane->Frame(-relief => 'groove', -borderwidth => 2)->pack(-side => 'top', -fill => 'x');      
                                                                                                           
                                                                                                           
  $f_clk -> Label(-text => '-CLK signal input:', -font => 'bold')                                          
          ->grid('-', '-','-', '-', '-', '-', '-', $f_clk->Button(-text => " ++ ", -command =>  \&add_clk),      
           -sticky => 'w', -pady => 5                                                                            
                 );                                                                                             
                                                                                                           
  for($i = 1; $i <= $clk_num; $i++){                                                                       
    $f_clk -> Label(-text => 'signal name:')                                                               
      ->grid($entries[$ent_idx++] = $f_clk->Entry(-textvariable => \$clk_name[$i-1]),                     
                   $f_clk->Label(-text => 'width:'),                                                            
                   $entries[$ent_idx++] = $f_clk->Entry(-textvariable => \$clk_width[$i-1],-width => 3),                
                   $f_clk->Label(-text => 'reset value:'),                                                      
                   $entries[$ent_idx++] = $f_clk->Entry(-textvariable => \$clk_reset_value[$i-1],-width => 3),   
                   $f_clk->Label(-text => 'description:'),                                                      
                   $entries[$ent_idx++] = $f_clk->Entry(-textvariable => \$clk_description[$i-1], -width => 75),
                   -sticky => 'w', -padx => 2, -pady => 5                                                        
                   );                                                                                            
  }                                                                                                        


sub read_data_from_database {
        @clk_name                                   = ();
        @clk_width                                  = ();
        @clk_reset_value                            = ();
        @clk_description                            = ();                                       
  my ($dbh);
  my ($sth,$sql);

  # create a statement in $sth
  $dbh=DBI->connect('dbi:mysql:mydatabase','root','123456',{PrintError=>0,RaiseError=>1});
  
  #prepare the statement for node_tag_clock_input;
  $sql="select signal_name,signal_width,signal_reset_value,signal_description from node_tag_clock_input";
  $sth=$dbh->prepare($sql);
  #execute the statement
  $sth->execute or die $dbh->errstr;
  while (my ($clk_name,$clk_width,$clk_reset_value,$clk_description)=$sth->fetchrow_array) {

          @clk_name                    = (@clk_name         ,  $clk_name);
          @clk_width                   = (@clk_width        ,  $clk_width);
          @clk_reset_value             = (@clk_reset_value  ,  $clk_reset_value);
          @clk_description             = (@clk_description  ,  $clk_description);
  }                        
  
  $sth->finish;
  $dbh->disconnect;
}
print "huangruihua",@clk_name;

sub write_data_to_database {
  my ($dbh,$sql,$sql2);
  #create the database handle;
  $dbh=DBI->connect('dbi:mysql:mydatabase','root','123456',{PrintError=>0,RaiseError=>1});
  
  #prepare the sql for node_tag_clock_input;
  $sql2="drop table node_tag_clock_input";
  $sql3="create table node_tag_clock_input (signal_name varchar(200), signal_width varchar(3), signal_reset_value varchar(2), signal_description varchar(250))";
  $dbh->do($sql2);                                                                          
  $dbh->do($sql3);
  for (my $i=0;$i<=(@clk_name-1);$i++) {
           $sql="insert into node_tag_clock_input (signal_name,signal_width,signal_reset_value,signal_description) values('$clk_name[$i]','$clk_width[$i]','$clk_reset_value[$i]','$clk_description[$i]')";     
     $dbh->do($sql);
  }
  $dbh->disconnect;
}


&read_data_from_database;

&do_input_entry();
每次执行一次read后,他的内容都不能显示在text里面,但都保存在变量里面。