Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much

Re: 3 strings to join

by BlaisePascal (Monk)
on Sep 29, 2000 at 02:39 UTC ( #34525=note: print w/replies, xml ) Need Help??

in reply to 3 strings to join

From the "gratuitous use of grep" club...
$string = "$a where " . join ' and ',grep {$_} ($b,$c);
Explanation: Read this from right-to-left. The grep takes as arguments a block of code (or a sub) and a list of items and return just the items in the list which the block of code is true for. In this case, the block of code is simply $_, so grep returns all items in the list ($b,$c) which are true (not undef, '', 0, or '0'). The join then takes those true items, and combines that list with ' and '. If there only one item, join omits the ' and '. It then concatenates the resulting string of 'where' clauses to the string formed by "$a where ", to get the resulting string.

Replies are listed 'Best First'.
RE:(even more grep:)3 strings to join
by jptxs (Curate) on Sep 29, 2000 at 02:58 UTC


    throw in another join and grep:

    $string = join ' where ', grep {$_} ($first, join ' and ', grep {$_} ( + $b, $c ));
    and it can even handle the case where there are no where clauses...

    -- I'm a solipsist, and so is everyone else. (think about it)

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://34525]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (3)
As of 2023-06-02 18:28 GMT
Find Nodes?
    Voting Booth?

    No recent polls found