in reply to Re: Class::DBI and how to wantarray...
in thread Class::DBI and how to wantarray...

yup, which is more or less what I ended up with, except it doesn't have to setup the queries (each is a hashref) unless it needs 'em:

for (1){ last if @results = blah('"for"'); last if @results = blah('"for"'); @results = blah('"for'); last; }

cheers,

J

Replies are listed 'Best First'.
Re: Re: Re: Class::DBI and how to wantarray...
by liz (Monsignor) on Aug 03, 2003 at 12:54 UTC
    Except in my case, it doesn't need to do all queries to get the hash refs. So you're only doing what is necessary, rather than to do it all and then select the first result.

    Liz

      ? That one doesn't do all three, it skips out of the "for" loop as soon as it gets a result..

      But thanks for the kick in the right direction with your first reply.. it got me scouring my copy of "Programming Perl". I think the closest I'm going to get to what I'm after is:

      #!/usr/bin/perl use strict; my @results; (@results = blah('"or1"')) || (@results = blah1('"or2"')) || (@results = blah('"or3"')); print join(':',@results)."\n"; sub blah{ my ($call) = @_; print "$call "; print wantarray ? "wants array" : "wants string"; print "\n"; return; } sub blah1{ my ($call) = @_; print "$call "; print wantarray ? "wants array" : "wants string"; print "\n"; return (1,2,3); } __END__ ]$ perl wantarr.pl "or1" wants array "or2" wants array 1:2:3

      (I extended the test a lil to make sure it was doing what I wanted..)

      cheers,

      J

        From your original node: ...I also want to try several slightly different searches and take the results from the first that gets any... which implies to me you don't want to do the other searches as soon as you have a result. I was going from that assumption.

        Liz