0
Ich bin neu bei Perl. Ich versuche, eine Array-Spalte in einer Postgres-Ansicht mit einem Perl-Skript auszuwählen, aber ich bin nicht sicher, wie das skalare Array, wie es in Perl kommt, in ein Perl-Array aufgeteilt wird, so dass ich durch jedes Feld gehen kann.Wie verarbeitet man ein postgres-Array in Perl?
Welche Ratschläge können Sie anbieten?
(mit Postgres 9.3, relativ neue Perl)
#!/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?
Etwas ist mit Ihrem Beispiel falsch. 'fetchrow' ist ein alter Alias für' fetchrow_array', der keine Array-Referenz als eines seiner Listenelemente zurückgibt. –