2014-04-14 138 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)和['use warnings;'](http://perldoc.perl.org/warnings.html)在每個perl腳本的頂部。如果你這樣做了,並且你忘記了這個美元符號,perl會給你以下有用的錯誤:''嚴格的潛艇'在使用時不允許使用'Bareword'getCenter' – Miller