2016-03-21 16 views
0

Perl'de yeniyim. Bir Perl betiği kullanarak bir postgres görünümünde bir dizi sütunu seçmeye çalışıyorum, ancak Perl dizisine Perl'e geldiğinde skaler diziyi nasıl kırılacağından emin değilim, böylece her alandan geçebilirim.Perl'de bir postgres dizisi nasıl işlenir?

Önerileriniz nelerdir? @ prepending tarafından

(kullanarak postgres 9.3, nispeten yeni Perl) dizi başvurusu KQUEUE

#!/usr/bin/perl 
use strict; 
use warnings; 
use DBI; 
use Data::Dumper; 
# open database connection 
my $dbh = DBI- >connect("dbi:Pg:dbname=$db::DB_name;host=$db::DB_host;port=$db::DB_port","$db::DB_user","$db::DB_pwd"); 
if (!defined $dbh) {&log_print("Cannot connect to database!\n"); die"dieing...\n";} 
#fetch record from postgres database 
$sth = $dbh->prepare("select progno, track_numbers from processing"); 
if (!defined $sth) { die "Cannot prepare statement: $DBI::errstr\n";} 
$rows = $sth->execute(); 
my ($p_progno, $p_track_numbers) = $sth->fetchrow(); 
$sth->finish; 
#output scalar 
&log_print("$p_track_numbers\n"); 
#result: ARRAY(0x1975d38) 
print Dumper($p_track_numbers); 
#result: 
#$VAR1 = [ 
#   16, 
#   17, 
#   18, 
#   19, 
#   20, 
#   21, 
#   22 
#  ]; 
#? How do I step through each $p_track_numbers in a foreach? 
+0

şey mi örnekle yanlıştır. 'fetchrow', liste öğelerinden biri olarak bir dizi başvurusu döndürmeyen, fetchrow_array' için eski bir takma addır. –

cevap

0

:

for my $track_number (@$p_track_numbers) { 
    print $track_number, "\n" 
}