perl: adatbázis lekérdezés, és a lekérdezés eredményének kiírása egy fileba [megoldva]

Fórumok

Előre elnézést kérek a nagyon pengéktől :)
Totálisan kezdő vagyok perlben.

A következő script működik:


#!/usr/bin/perl
use DBI;
my $dsn='DBI:Pg:dbname=zabbix_test;host=192.168.0.10';
my $username='user';
my $password='pass';
my $dbh = DBI->connect($dsn, $username, $password, {'RaiseError' => 1});
my $query='SELECT hosts.name FROM hosts_groups, hosts where hosts_groups.hostid=hosts.hostid and groupid=62 order by hosts.name';
my $sth = $dbh->prepare($query);
$sth->execute();
while(my $ref = $sth->fetchrow_hashref()) {
print "$ref->{'name'}\n";
}
$dbh->disconnect();

Mindössze annyi a probléma, hogy a stdout helyett egy fileba szeretném kiírni az adott select eredményét.

Tudom amatőr kérdés, de hogyan tudom a select eredményét egy fájlba írni?
Jól gondolom, hogy az "$sth->fetchrow_hashref()" annyit csinál hogy az sth változónak átad egy hash kódot, amit a "print "$ref->{'name'}\n"-nél old fel, és ír ki?

Előre is köszi a segítséget!

Hozzászólások

Jól gondolom, hogy az "$sth->fetchrow_hashref()" annyit csinál hogy az sth változónak átad egy hash kódot, amit a "print "$ref->{'name'}\n"-nél old fel, és ír ki?

Nem, a fetchrow_hashref leker egy sort az eredmenybol, asszociativ (hash) tombbe pakolja, es visszaterit neked egy referenciat erre a tombre.

Amugy amit szeretnel az:


open(FILE,">filenev") || die "Can't open filenev: $!";
...
print FILE "$ref->{'name'}\n";
...
close FILE;