2014-04-14 2 views
1

제목이 맞는지 확실하지 않습니다. 난 할 노력하고있어이 (이미 DBI에서 데이터베이스 핸들을받은 것)입니다 :Perl 함수 참조로 문자열

my $idcenter = 4; 
my $getCenter = $dbh->prepare(
<<SQLEND 
select * from center 
where uidcenter = ? 
SQLEND 
); 

my @tables = ("Center"); 
foreach $table (@tables) { 
    my $func = "get$table"; 
    $func->bind_param(1, $idcenter); 
    etc. 
} 

그래서, 어떻게 함수에 (? 그 권리입니다) 포인트 변수를 구성합니까? 방법이 있습니까?

답변

3

당신은 해시에게

my %get_table = (
    center => $getCenter, 
); 

$get_table{"center"}->bind_param(1, $idcenter); 
+0

아를 사용합니다, 감사합니다! 전에 해시 테이블을 사용하고 있었지만 달러 기호를 getCenter 앞에 두지 않았습니다. – horndinkle

+3

['use strict;'] (http://perldoc.perl.org/strict.html) 및 ['경고 사용'] (http://perldoc.perl.org/warnings.html)이 있는지 확인하십시오. 각각의 perl 스크립트의 맨 위에. 만약 당신이 달러 기호를 잊어 버렸다면 펄은 다음과 같은 유용한 에러를 줄 것이다 :'Bareword "getCenter는"허용되지 않는다 ","strict subs "in use' – Miller