2013-09-26 80 views
1

我想用Perl解析數據到MySQL表。但每當我收到以下錯誤: 未定義子程序& main :: execute在all_drug_info.pl調用71行 其中all_drug_info是通過其從不同文件(子例程)獲取信息的主文件。 當我試圖通過終端上的主文件打印值時,它正確打印,但不能在MySQL表格中解析。以下是我工作的一段代碼。請幫我調試這個:Perl mysql解析

#! /usr/bin/perl 
binmode(STDOUT, ":utf8"); 
use XML::XPath; 
require 'drug_characteristics.pl'; 

my $query3 = "INSERT INTO drug_characteristics VALUES (?,?,?,?,?,?,?,?,?)"; 
my $query_handle3 = $dbh->prepare($query3); 

my ($d_t, $descr, $pm, $ind, $mech, $tox, $gr, $cl, $pha)=&drugCharacteristics(@files); 
for(my $a=0; $a< $drug_count ; $a++) 
{ 
#to execute mysql queries: 
$query_handle3 = execute($d_t->[$a], $descr->[$a], $pm->[$a], $mech->[$a], $tox->[$a], $ind->[$a], $gr->[$a], $cl->[$a], $pha->[$a]); 


print $d_t->[$a], "\n", $descr->[$a], "\n", $pm->[$a], "\n", $ind->[$a], "\n",$mech->[$a], "\n", $tox->[$a], "\n", $gr->[$a], "\n", $cl->[$a], "\n",$pha->[$a], "\n","---------------------------------------------------------------------------------------------------------------------------------------------------------------------","\n"; 
} 
+0

旁註;在'drugCharacteristics()'前放置'&'。 'map $ _-> [$ a],$ d_t,$ descr,$ pm,$ mech,$ tox,$ ind,$ gr,$ cl,$ pha'是 的簡稱'$ d_t - > [$ a ],$ descr - > [$ a],$ pm - > [$ a],$ mech - > [$ a],$ tox - > [$ a],$ ind - > [$ a],$ gr- > [$ a],$ cl - > [$ a],$ pha - > [$ a]' –

回答

2

相反的:

$query_handle3 = execute($d_t->[$a], ..... 

使用:

$query_handle3->execute($d_t->[$a], ..... 
+0

非常感謝,它工作得很好.. – user2818537

+0

@ user2818537:不客氣。隨時接受答案。 – Toto