<div>О, спасибо! Конкретика попёрла, воспринял и осмысливаю!</div><div> </div><div>-- <br />С наилучшими пожеланиями</div><div>Максим Белозёров</div><div> </div><div> </div><div> </div><div>16.12.2016, 10:02, "Konstantin S. Uvarin via Moscow-pm" <moscow-pm@pm.org>:</div><blockquote type="cite"><div><div style="font-family:monospace,monospace;">Приветствую!<br /> </div><div style="font-family:monospace,monospace;">  "На пару функций". Поехали.<br /> </div><div style="font-family:monospace,monospace;">1) Захват ресурса (временный файл, например).<br /> </div><div style="font-family:monospace,monospace;">ООП позволяет написать что-то в духе<br /> </div><div style="font-family:monospace,monospace;">    my $resource = My::Resource->new( %params );</div><div style="font-family:monospace,monospace;">    my $fd = $resuource->file;<br /> </div><div style="font-family:monospace,monospace;">    # долго делаем что-то с $fd<br /> </div><div style="font-family:monospace,monospace;">    undef $resource; # вызвался деструктор и освободил ресурс за нас</div><div style="font-family:monospace,monospace;">        # и это сработает независимо от того, вызвали мы return или die</div><div style="font-family:monospace,monospace;">        # разве что на exec-е не сработает, или если  сигналом убили.<br /> </div><div style="font-family:monospace,monospace;">Хотя в тестовых скриптах, например, вызываю mktemp( ..., CLEANUP => 1 );</div><div style="font-family:monospace,monospace;">и не парюсь.<br /> </div><div style="font-family:monospace,monospace;">2) сериализация:<br /> </div><div style="font-family:monospace,monospace;">my $codec = My::Serializer->new( %params );</div><div style="font-family:monospace,monospace;">$codec->encode( ... );</div><div style="font-family:monospace,monospace;">$codec->decode( ... );<br /> </div><div style="font-family:monospace,monospace;">И тут мы (а) гарантируем, что параметры надо менять в ОДНОМ месте, и (б) гарантируем 100% раунд-трип данных (то есть, encode(decode(x)) == x).</div><div style="font-family:monospace,monospace;"> </div><div style="font-family:monospace,monospace;">Опять же, есть куча мест, где freeze/thaw или encode_json/decode_json прекрасно работают. А вот попробуйте сконфигурировать (через local Data::Dumper::foo = ... ) Data::Dumper так, как удобно  Вам, а не ему - узнаете много новых выражений из уже известных Вам слов :)<br /> </div><div style="font-family:monospace,monospace;"> </div><div style="font-family:monospace,monospace;">С уважением,</div><div style="font-family:monospace,monospace;"> </div></div><div> <div><span>2016-12-16 8</span>:27 GMT+02:00 Максим Белозёров via Moscow-pm <span><<a target="_blank" href="mailto:moscow-pm@pm.org">moscow-pm@pm.org</a>></span>:<blockquote style="margin:0 0 0 0.8ex;border-left:1px #ccc solid;padding-left:1ex;">Объясните непрограммисту: что за прок от ООП в модулях на пару функций (пардон, методов)? Что за смысл многословно и со стрелочками писать что-то, что можно вызвать одним именем функции с парой параметров? Какая вообще польза в абстрагировании от входных данных? Они разные, блин, чего стоит абстрактная хня в вакууме? Не ООП ли это ради ООП?<br />Вкусовщинка: какие способы общения со сторонними модулями предпочитаете?<br />Может, вопросы глупы, но очень нужна пара осмысленных ответов. Больших проектов не пишу, а в мелких на ламерский взгляд от ООП одна порча. Помогите разобраться, хоть ссылками на годные материалы (можно en_US или en_UK).<br /><br /><span><font color="#888888">--<br />С наилучшими пожеланиями<br />Максим Белозёров<br />--<br />Moscow.pm mailing list<br /><a href="mailto:moscow-pm@pm.org">moscow-pm@pm.org</a> | <a target="_blank" href="http://moscow.pm.org/">http://moscow.pm.org</a></font></span></blockquote></div><br /><br /><br />--<div><div><div><div><div><font face="monospace,monospace">Konstantin S. Uvarin</font></div><font face="monospace,monospace">jabber: see <from></font></div><font face="monospace,monospace">skype: kuvarin</font></div><font face="monospace,monospace"><a target="_blank" href="http://github.com/dallaylaen">http://github.com/dallaylaen</a></font></div></div></div>,<span>--<br />Moscow.pm mailing list<br /><a href="mailto:moscow-pm@pm.org">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org/">http://moscow.pm.org</a></span></blockquote>