<div>завсегдатаи Ð¿Ð¾Ð´ÑÐºÐ°Ð·Ð°Ð»Ð¸: http://www.perlmonks.org/?node_id=973015</div><div><br /></div><div><br /></div><div>19.04.2017, 10:23, "Konstantin Cherednichenko" <dshadowukraine@gmail.com>:</div><blockquote type="cite"><div dir="auto">Отличная Ð¸Ð´ÐµÑ! Ð¡Ð¿Ð°ÑÐ¸Ð±Ð¾!</div><div><br /><div>On Apr 19, 2017 10:19, "KES" <<a href="mailto:kes-kes@yandex.ru">kes-kes@yandex.ru</a>> wrote:<br type="attribution" /><blockquote style="margin:0 0 0 0.8ex;border-left:1px #ccc solid;padding-left:1ex;">Привет.<br />
<br />
А Ñƒ Ð¼ÐµÐ½Ñ Ð²Ð¾Ñ‚ Ð´Ð°Ð²Ð½Ð¾ Ð²Ð¸Ñ‚ает Ð¸Ð´ÐµÑ "мягкого Ð²Ñ‹Ð·Ð¾Ð²Ð°".<br />
Даже ÐµÑ‰Ñ‘ ÐºÐ¾Ð³Ð´Ð° Ð¿Ð¸ÑÐ°Ð» Ð½Ð° Ð°ÑÑÐµÐ¼Ð±Ð»ÐµÑ€Ðµ Ð²ÑÐµÐ³Ð´Ð° Ñ€Ð°Ð·Ð´Ñ€Ð°Ð¶Ð°Ð»Ð¸ Ð¸ÑÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸ `CALL 0`<br />
<br />
ну Ð²Ð¾Ñ‚ ÑÐ½Ð¾Ð²Ð° Ð²ÐµÑ€Ð½ÑƒÐ»ÑÑ Ðº ÑÑ‚ой Ñ‚еме.<br />
<br />
1. Ð§Ñ‚о Ð½Ðµ Ñ‚ак?<br />
Очень Ñ‡Ð°ÑÑ‚о Ð¿Ñ€Ð¸Ñ…одится Ð¿Ð¸ÑÐ°Ñ‚ÑŒ ÑÐ»ÐµÐ´ÑƒÑŽÑ‰Ð¸Ð¹ ÐºÐ¾Ð´:<br />
my $x; my $y;<br />
if( ($x =  $obj->method)  Â &&  $y =  $x->another_method ) {<br />
  Â  Â $y = ...;<br />
}<br />
<br />
Пример Ð¸Ð· Ð¶Ð¸Ð·Ð½Ð¸:<br />
<br />
if( $db->query( ... )->hash->{ value } ) { ... }<br />
if( $db->resultset( 'table' )->search( ... )->related_resultset( 'table2' ) { ... }<br />
<br />
<br />
тут ÐµÑÐ»Ð¸ Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð²ÐµÑ€Ð½ÑƒÐ» Ð¿ÑƒÑÑ‚ой Ñ€ÐµÐ·ÑƒÐ»ÑŒÑ‚ат, Ñ‚о ÐºÐ¾Ð´ ÑƒÐ¿Ð°Ð´Ñ‘Ñ‚.<br />
<br />
А ÐµÑÐ»Ð¸ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÑŒ Ð¾Ð¿ÐµÑ€Ð°Ñ‚ор Ð¼ÑÐ³ÐºÐ¾Ð³Ð¾ Ð²Ñ‹Ð·Ð¾Ð²Ð°, Ñ‚о Ð¼Ð¾Ð¶Ð½Ð¾ Ð±ÑƒÐ´ÐµÑ‚ Ð½Ðµ Ð±Ð¾ÑÑ‚ься Ð¸ÑÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ð¹ Ð¸ ÐºÐ¾Ð´ ÑÑ‚анет Ð¿Ñ€Ð¾Ñ‰Ðµ:<br />
<br />
use pragma 'soft_call';<br />
if( my $x =  $obj->method~>another_method ) { ... }<br />
if( $db->query( ... )~>hash->{ value } ) { ... }<br />
if( $db->resultset( 'table' )->search( ... )~>related_resultset( 'table2' ) { ... }<br />
<br />
И Ð²Ñ€Ð¾Ð´Ðµ ÐºÐ°Ðº Ð²ÑÑ‘ Ð²Ñ‹Ñ€Ð°Ð·Ð¸Ñ‚ельно Ð¿Ð¾Ð»ÑƒÑ‡Ð°ÐµÑ‚ся.<br />
<br />
Даже ÑÐ°Ð¼Ð° Ñ€ÐµÐ°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð¿Ñ€Ð°Ð³Ð¼Ñ‹ Ð² Ð´ÐµÑÑÑ‚ок ÑÑ‚рок:<br />
1. Ð´ÐµÐ»Ð°ÐµÐ¼ Ð¿Ð»Ð°Ð³Ð¸Ð½ Ð´Ð»Ñ keyword, ÐÐ°Ð¿Ð¾Ð´Ð¾Ð±Ð¸ÐµÂ  Syntax::Keyword::Try<br />
2. Ñ†ÐµÐ¿Ð»ÑÐµÐ¼ÑÑ Ð½Ð° <a href="http://perldoc.perl.org/perlguts.html#Pluggable-runops" rel="noreferrer" target="_blank">http://perldoc.perl.org/<wbr />perlguts.html#Pluggable-runops</a><br />
3. ÐŸÑÐµÐ²Ð´Ð¾ÐºÐ¾Ð´:<br />
sub soft_call_operator {<br />
  Â  my( $left_operand, $right_operand ) =  @_;<br />
<br />
  Â  return undef  Â  if !defined $left_operand;<br />
<br />
  Â  '->'( $left_operand, $right_operand ); # Ð´ÐµÐ»Ð°ÐµÐ¼ Ð¾Ð±Ñ‹Ñ‡Ð½ÑƒÑŽ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ку Ð²Ñ‹Ð·Ð¾Ð²Ð° Ñ„ункции<br />
}<br />
<br />
<br />
Комментарии wellcome<br />
______________________________<wbr />_________________<br />
Kiev-pm mailing list<br />
<a href="mailto:Kiev-pm@pm.org">Kiev-pm@pm.org</a><br />
<a href="http://mail.pm.org/mailman/listinfo/kiev-pm" rel="noreferrer" target="_blank">http://mail.pm.org/mailman/<wbr />listinfo/kiev-pm</a><br />
</blockquote></div></div>
,<p>_______________________________________________<br />Kiev-pm mailing list<br /><a href="mailto:Kiev-pm@pm.org">Kiev-pm@pm.org</a><br /><a href="http://mail.pm.org/mailman/listinfo/kiev-pm">http://mail.pm.org/mailman/listinfo/kiev-pm</a><br /></p></blockquote>