('?') x ~~@$l - изврат, можно просто ('?') x @$l
x сам по себе кастит scalar

On 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

Ответить