[Dbix-class] [OT][ANNOUNCE] SQL Generation with SQL::DB
Mark Lawrence
nomad at null.net
Thu Sep 6 19:07:14 GMT 2007
On Thu Sep 06, 2007 at 01:05:21PM -0400, Jason Kohles wrote:
> On Sep 6, 2007, at 12:24 PM, Matt Rosin wrote:
>
> >>>> where => $lname->like('%son%') & ! ($age < 10 | $age > 20 )
> >
> >Just curious, could this work too? Or do subtle precedence
> >differences wreck it?
> >
> >where, ( $lname->like('%son') and not ($age < 10 or $age > 20) )
> >
> Changing '&' to 'and' is more than a subtle precedence difference...
Correct. I must apologise for having used the term logic operators when
referring to "|", "&" and "!" which are in fact all bitwise logic operators.
Bitwise operators can be overloaded with Perl's overload.pm which is how
SQL::DB (and Tangram, where I first saw this approach) do their magic.
Unfortunately their big brothers (&&,||,not,and,or) cannot be overloaded.
Because the bitwise ops have similar meanings to their counterparts
their usage looks "close enough" to the real thing, so it doesn't take
long to get comfortable with that.
Mark.
--
Mark Lawrence
More information about the DBIx-Class
mailing list