2013-09-26 6 views
1

Я пытаюсь разобрать данные в таблицы MySQL, используя Perl. Но каждый раз я получаю следующую ошибку: Неопределенная подпрограмма & main :: execute вызвана по адресу all_drug_info.pl строка 71 Где all_drug_info - это основной файл, через который я извлекаю информацию из другого файла (подпрограммы). Когда я попытался напечатать значения через основной файл на терминале, он правильно печатает, но не выполняет синтаксический анализ в таблице MySQL. Ниже приведен фрагмент кода для моей работы. Пожалуйста, помогите мне в отладке это:Perl mysql parsing

#! /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

Sidenote; drop '&' перед '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