bawię się w generowanie raportów w perlu z bazy mysql. I utknąłem w jednym miejscu bo chciałem sobie ładnie sformatować te dane przy pomocy polecenia format i stworzyłem taki skrypt:
#!/usr/bin/perl
#
# test32.pl
#
# $Id$
#
#
# Używane moduły
#
use strict;
use warnings;
use DBI;
#use DBD::mysql;
#
# Sekcja konfiguracyjna
#
my $db_type = 'mysql';
my $db_host = 'localhost';
my $db_user = '*****';
my $db_pass = '*****';
my $db_name = '*****';
my $table_users = 'fw_users';
my $table_allowed_users = '';
my $table_banned_users = '';
#
# Kod
#
# Połączenie z bazą danych
my $dbh = DBI->connect(
"DBI:$db_type:$db_name:$db_host",
"$db_user",
"$db_pass"
) || die "Could not connect to database: " . DBI->errstr;
# Zapytanie SQL
my $sql = "SELECT
user_id,
user_ip,
user_email,
user_name,
user_surname,
user_address,
user_phone
FROM
$table_users
ORDER BY
user_id ASC;";
# Wykonanie zapytania
my $sth = $dbh->prepare( $sql );
$sth->execute();
# Pobranie wyników
my $results = $sth->fetchall_arrayref();
$sth->finish();
$dbh->disconnect();
# Wypisanie wyników w pętli
foreach my $record (@$results)
{
# Analizujemy każdy rekord
my ($user_id, $user_ip, $user_email, $user_name, $user_surname, $user_address, $user_phone) = @$record;
format =
@<<< @<<<<<<<<<<<<<<<<<<<< @<<<<<<<<<<<<<<<<<<<< @<<<<<<<<<<<<<< @<<<<<<<<<<<<<<
$user_id,$user_ip, $user_email, $user_name, $user_surname
.
write;
#print " $user_id,$user_ip,$user_email,$user_name,$user_surname\n";
}
#
# Czyste zakończenie skryptu
#
exit 0;
ale niestety zgłasza mi taki błąd:
J:\LINUX\skrypty>test32.pl
Missing right curly or square bracket at J:\LINUX\skrypty\test32.pl line 77, at end of line
syntax error at J:\LINUX\skrypty\test32.pl line 77, at EOF
Execution of J:\LINUX\skrypty\test32.pl aborted due to compilation errors.J:\LINUX\skrypty>
i nie bardzo wiem o co się burzy... [???]