>При помощи eval, может еще при помощи глобов, но не пробовал. С eval вроде как получилось. Задача 1: делать выборку из BD из столбцов id_1,id_2,id_3
------------------------------------------------
use DBI;
@cols = qw (id_1, id_2, id_3);
sub test {
my $cols = shift;
my @cols = @$cols;
$sql_qv = "SELECT " . join ('',@cols) . " FROM table";
sql_execute($sql_qv);
foreach $k (@cols) {
$var_ref = "\\\$".$k;
push (@bind_vars_ref, $var_ref);
}
$bind_eval = "\$sql_res->bind_columns(" . join('',@bind_vars_ref) . ")\;";
eval ($bind_eval); #***** $sql_res->bind_columns(\$id_1,\$id_2,\$id_3);
#-------------------------------------------
# А вот задача 2: в хешь %row_data заганять в ключи с именами из того же массива, что был # пеердан в функцию - значения переменных, связанных с колонками на предыдущем
# этапе. если явно указать то будет выглядеть так:
while ($sql_res->fetchrow_arrayref) {
my %row_data;
$row_data{ID_1} = $id_1;
$row_data{ID_2} = $id_2;
$row_data{ID_3} = $id_3;
push(@view_data, \%row_data);
}
#А как сделать с использованием массива @cols, что бы ключи хэша имели имена и главное значения присваивались ?
}