<html>
  <head>
    <meta content="text/html; charset=KOI8-R" http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">Ну мало ли, чего он требует. В описании
      модуля сказано, что - 'Using the "Error" module is <b>no longer
        recommended</b> due to the black-magical nature of its syntactic
      sugar, which often tends to break.'  Лучше в таком случае
      избавиться и от Error.pm, и от <strike>perlclinic</strike>
      perlcritic заодно)) <br>
      <br>
      А использовать наверно как-то так:<br>
      <br>
       perl -MError=:try -E 'try { throw XXX("Aaaaa") } catch XXX with {
      say shift }; package XXX; use parent "Error::Simple"; sub new { my
      $e = shift->SUPER::new(@_); bless $e, __PACKAGE__ } 1'<br>
      <br>
      29.10.2013 1:51, Nikolay Mishin пишет:<br>
    </div>
    <blockquote cite="mid:297811382997112@web11j.yandex.ru" type="cite">
      <pre wrap="">Андрей, спасибо, да действительно Try::Tiny работает,
вот 2 теста
с eval
<a class="moz-txt-link-freetext" href="https://github.com/mishin/gists/blob/master/test_ff1.pl">https://github.com/mishin/gists/blob/master/test_ff1.pl</a>
c Try::Tiny
<a class="moz-txt-link-freetext" href="https://github.com/mishin/gists/blob/master/test_ff1_try.pl">https://github.com/mishin/gists/blob/master/test_ff1_try.pl</a>
действительно ошибки ловятся,
но все равно
в 5.18 perlcritic -5 требует использования 
Error.pm 
а как написать на нем error class ума не приложу,
все примеры в документации какие-то не выразительные
может кто умеет?

29.10.2013, 01:10, "Андрей Асякин" <a class="moz-txt-link-rfc2396E" href="mailto:asan999@gmail.com"><asan999@gmail.com></a>:
</pre>
      <blockquote type="cite">
        <pre wrap="">$ERRNO это $!, а ни $@, а в Try::Tiny вроде $_ используется:

 perl -MCarp -MTry::Tiny -E 'try { croak "aaaaa" } catch { say "XXX: $_" }'

так что все работает

29.10.2013 0:04, Nikolay Mishin пишет:

</pre>
        <blockquote type="cite">
          <pre wrap="">MoscowPM, привет,
ну и напоследок перед сном;))

Нужно мне было, если не запущен firefox, то запустить его, пишу (<a class="moz-txt-link-freetext" href="https://github.com/mishin/gists/blob/master/trans.pl">https://github.com/mishin/gists/blob/master/trans.pl</a>
 100-133)

    my $url = '<a class="moz-txt-link-freetext" href="http://www.translate.ru/">http://www.translate.ru/</a>';
    my $firemech;

    my $lived = eval {
        $firemech = WWW::Mechanize::Firefox->new( tab => qr/PROMT/sm, );
        1;
    };
    my $err = $ERRNO;    # $@;

    given ($err) {

#Failed to connect to , problem connecting to "localhost", port 4242: Connection refused at /usr/local/share/perl/5.14.2/MozRepl/Client.pm line 144
        when (/\QFailed to connect to , problem connecting to\E/xsm) {

  #        use Test::More;
  #         is $lived, undef, 'We died trying to connect to a non-existing tab';
  #         like $err, q{/Couldn't find a tab matching/},
  #           'We got the correct error message';
            my $path_to_firefox =
              os_is('MSWin32')
              ? 'C:/Program Files (x86)/Mozilla Firefox/firefox.exe'
              : '/usr/bin/firefox';
            $firemech = WWW::Mechanize::Firefox->new(
                tab    => 'current',
                launch => $path_to_firefox
            );
            $firemech->get($url) or die "Cannot connect to $url\n";
        }

        #Couldn't find a tab matching /(?^ums:PROMT)/ at trans.pl line 100.
        when (/\QCouldn't find a tab matching\E/xsm) {
            say 'we match error' . $_;
            $firemech = WWW::Mechanize::Firefox->new( tab => 'current', );
            $firemech->get($url) or die "Cannot connect to $url\n";
        }
    }

Так вот никакой Try:;Tiny ни Error.pm
мне не помог, как это под них переписать
я не пойму, чтобы работало
Error.pm - вообще классы ошибок надо строить,а  как не ясно

в общем по старинке ловлю ошибки эвалом eval
дело в том еще, что WWW::Mechanize::Firefox
<a class="moz-txt-link-freetext" href="https://metacpan.org/source/CORION/WWW-Mechanize-Firefox-0.74/lib/WWW/Mechanize/Firefox.pm">https://metacpan.org/source/CORION/WWW-Mechanize-Firefox-0.74/lib/WWW/Mechanize/Firefox.pm</a>
внутри себя ипользует
useCarpqw(carp croak );
и, таким образом, все ошибки пролетают мимо Try::Tiny
- их невозможно поймать,
в общем я их обрабатываю, как в тестах к модулю
<a class="moz-txt-link-freetext" href="https://metacpan.org/source/CORION/WWW-Mechanize-Firefox-0.74/t/50-mech-new.t">https://metacpan.org/source/CORION/WWW-Mechanize-Firefox-0.74/t/50-mech-new.t</a>

хоть Try::Tiny я и люблю, но, когда нужно написать
что-нибудь рабочее - плюешь на Perl Best Practice
и пишешь, чтоб работало
--
С уважением
Николай Мишин
</pre>
        </blockquote>
        <pre wrap="">
,
--
Moscow.pm mailing list
<a class="moz-txt-link-abbreviated" href="mailto:moscow-pm@pm.org">moscow-pm@pm.org</a> | <a class="moz-txt-link-freetext" href="http://moscow.pm.org">http://moscow.pm.org</a>
</pre>
      </blockquote>
      <pre wrap="">
</pre>
    </blockquote>
    <br>
  </body>
</html>