('?') x ~~@$l - изврат, можно просто ('?') x @$l
x сам по себе кастит scalarOn 18.12.2013, at 12:20, Анатолий Гришаев <[email protected]> wrote: > ++ за идею. > - за прочитать несколько раз, чтобы вьехать. > + за ~~@$limit > > 18.12.2013 12:07, vividsnow пишет: >> как вариант что-то вроде: >> https://gist.github.com/vividsnow/8d294801959975730fc3 >> (возможно более специфичное к вашей задаче) >> >> On 12/18/2013 03:44 AM, Nick Knutov wrote: >>> Не вижу, чем мне это может помочь. >>> >>> В данном примере posts_sql_view() возвращает нечто очень большое и >>> сложное, например селект с джойнами по куче таблиц из селекта с джойнами. >>> >>> Как минимум, конструировать запрос мне надо начиная с того места, где >>> может быть WHERE. И, например, как тут - наличие LIMIT и его количество >>> зависит от других параметров. >>> >>> >>> 18.12.2013 5:34, vividsnow пишет: >>>> https://metacpan.org/pod/SQL::Abstract >>>> >>>> >>>> 2013/12/18 Nick Knutov <[email protected] <mailto:[email protected]>> >>>> >>>> У меня в коде в некоторых функциях, в зависимости от входных >>>> параметров, >>>> конструируются разные sql запросы. Пример: >>>> >>>> my $sql = posts_sql_view(); >>>> $sql .= ' WHERE ' if $type or $id or $main; >>>> do { $sql .= ' ty.id =? '; push @params, $type;} if $type; >>>> do { $sql .= ' AND p.id =? LIMIT 1'; push @params, $id >>>> } if $id; >>>> $sql .= ' ORDER BY id DESC ' unless $id; >>>> do { $sql .= ' LIMIT ? ' ; push @params, $limit } if $limit and not >>>> $id; >>>> >>>> Мне не нравится как это визуально выглядит. Как бы вы это переписали, >>>> чтобы было понятнее и читабельнее? >>>> >>>> ps: в некоторых других случаях можно было бы использовать && вместо >>>> do{}, но не тут. >>>> >>>> pps: ORM предлагать и обсуждать не надо. Как минимум потому, что >>>> запросы >>>> сложные и сложность/стоимость проверки того, что генерирует ORM >>>> многократно выше любого профита от ORM в данной ситуации. >>>> >>>> -- >>>> Best Regards, >>>> Nick Knutov >>>> http://knutov.com >>>> ICQ: 272873706 >>>> Voice: +7-904-84-23-130 <tel:%2B7-904-84-23-130> >>>> -- >>>> Moscow.pm mailing list >>>> [email protected] <mailto:[email protected]> | http://moscow.pm.org >>>> >>>> >>>> >>>> > > -- > Moscow.pm mailing list > [email protected] | http://moscow.pm.org
-- Moscow.pm mailing list [email protected] | http://moscow.pm.org
