1

Perl スクリプトで 'fetchrow_arrayref' の使用法に行き詰まりました。スクリプトのどこが間違っているか誰か指摘できますか? 何でも教えていただければ幸いです。ありがとうございました。

私が直面している問題は次のとおりです。

(1) $id を印刷します。<-これは $id の内容を出力しません。

(2) print "$list[1]"; <-これは、実際のコンテンツの代わりに ARRAY(0x8da6978) を出力します。

(3) 逆(@リスト); <-これは @list の内容を反転しません。

(4) print "@{$_} \n"; <- "\n" は機能しません。また、なぜ @{} が必要なのですか?

(5) "\n" を印刷します。<-これもうまくいきません。

(6) 「@list」を印刷します。<-これは ARRAY(0x8da6978) を出力します。

(7) print Dumper(@inverse); <-正常に出力されますが、配列の内容は反転されません。

#!/usr/bin/perl

use strict;
use warnings;
use DBI;
use Data::Dumper;

....

my $dbh = DBI->connect($dbname, $dbuser, $dbpassword) || die "Error $DBI::errstr";
my $sth = $dbh->prepare("SELECT * FROM name WHERE id = 11");
$sth->execute;

my @list = ();

while(my $element = $sth->fetchrow_arrayref){

    push(@list, $element);

}


$sth->finish;
$dbh->disconnect;

my ($id, $name, $email, $telephone) = @list;

print "Content-Type: text/html; charset=UTF-8\n\n";

print $id;                                           (problem 1)

print "$list[1]";                                    (problem 2)

my @inverse = reverse(@list);                        (problem 3)

foreach (@inverse){

    print "@{$_} \n";                                (problem 4)

}

print "\n";                                          (problem 5)

print "@list";                                       (problem 6)

print Dumper(@inverse);                              (problem 7)

exit;
4

2 に答える 2