Hello Frank, Thanks for the great answer. I'll be sure to try to understand those PerlRefs a little better.
Cheers. At 11:31 AM 11/09/2002, Frank Wiles wrote: > .------[ Scott Taylor wrote (2002/09/11 at 11:07:21) ]------ > | > | Hello, > | > | I have an SQL table with 2 fields, ID and Descr and I want to load these > | into an array and a hash. > | > | First the array @SecID should be just the first field and then the hash > | %Sections should be ID=>Descr > | > | All I get is garbage > | > | This is the code that doesn't work, I know I'm missing something > here, but > | not what: > | > | $SQL = qq[Select * from T_Sec_ID]; > | $sth = $dbh->prepare($SQL); > | $sth->execute; > | > | my %Sections = $sth->fetchrow_hashref; > | $sth->finish; > | > | $SQL = qq[select secid from T_Sec_ID]; > | $sth = $dbh->prepare($SQL); > | $sth->execute; > | > | my @SecIDs = $sth->fetchrow_arrayref; > | $sth->finish; > | > | Here is the output, not what I want: > | HASH(0x82c6388) > | ARRAY(0x82c6370) > | > `------------------------------------------------- > > There are two ways to do this the more advanced and the easy: > > Easy way: > > my %Sections; > my $sth = $dbh->prepare("SELECT ID, Descr FROM T_Sec_ID"); > $sth->execute; > > while( my($id, $desc) = $sth->fetchrow ) { > $Sections{$id} = $desc; > } > $sth->finish; > > my @SecIDs = keys(%Sections); > > You don't really need the Array as you can always call > keys(%Sections) and it will return the array you were trying to > build into @SecIDs. This will also remove the need to do two SQL > calls which isn't very efficient. > > Advanced way using references: > > my $section_ref; > my $sth = $dbh->prepare("SELECT ID, Descr FROM T_Sec_ID"); > $sth->execute; > > $section_ref = $sth->fetchrow_hashref; > > my @SecIDS = keys( %{ $section_ref } ); > > You'll probably want to read up on Perl references in the perlref > man page. > > --------------------------------- > Frank Wiles <[EMAIL PROTECTED]> > http://frank.wiles.org > --------------------------------- -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]