speaking of which, c-style error checking/indicating return codes are a pita when you have Try::Tiny/die/eval/Throwable
use Try::Catch qw/ try catch finally /; sub foo { ... try { fooFoo($ssh); } catch { warn "warn cought one: $_"; }; $ssh->exit_session; $ssh->close_session; } sub fooFoo { my ($ssh) = @_; if ( !$ssh->start_session($ssh_host) ) { MyErr->throw("ERROR connecting to $ssh_host"); } my ( $ret, $err ) = $ssh->execute( 'command1', 'expect1' ); if ( $err || $ret =~ /Unknown command:/m ) { MyErr->throw({err => $err, ret => $ret, execute => [ 'command1 +', 'expect1' ] ); } my ( $ret, $err ) = $ssh->execute( 'command2', 'expect2' ); if ( $err || $ret =~ /Unknown command:/m ) { MyErr->throw({err => $err, ret => $ret, execute => [ 'command2 +', 'expect2' ] ); } return; } { package MyErr; use Moo; with 'Throwable'; has err => (is => 'ro'); has ret => (is => 'ro'); has execute => (is => 'ro'); 1; }

In reply to Re^3: exiting a subroutine neatly (Throwable) by Anonymous Monk
in thread exiting a subroutine neatly by Mavebe

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.