我陷入了 Perl 脚本中“fetchrow_arrayref”的使用。谁能指出我在脚本中哪里出错了?我会很感激你能告诉我的。谢谢你。
我面临的问题是:
(1) 打印$id;<-这不会打印 $id 的内容。
(2) 打印“$list[1]”;<-这将打印 ARRAY(0x8da6978) 而不是实际内容。
(3) 反向(@list); <-这不会反转@list 的内容。
(4) 打印“@{$_}\n”;<- "\n" 不起作用。还有为什么我们需要@{}?
(5) 打印“\n”;<-这也不起作用。
(6) 打印“@list”;<-这将打印 ARRAY(0x8da6978)。
(7) 打印 Dumper(@inverse); <-prints 很好,但数组的内容没有反转。
#!/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;