in reply to Re^4: conditional catch-blocks 'try {} catch(COND) { }'
in thread conditional catch-blocks 'try {} catch(COND) { }'

> That would allow the following syntax that at least looks similar to try-catch in other languages:
try { # ... } catchif TypeError => { # ... } catchif RangeError => { # ... } catch { ...

May I see a POC with prototypes for that?

Because this

> sub catchif ($&;@)

will require a sub before and a comma after the block.

try { # ... } catchif TypeError => sub { # ... }, catchif RangeError => sub { # ... }, catch { ...

Cheers Rolf
(addicted to the Perl Programming Language :)
Wikisyntax for the Monastery

Replies are listed 'Best First'.
Re^6: conditional catch-blocks 'try {} catch(COND) { }'
by afoken (Chancellor) on Sep 21, 2021 at 18:54 UTC

    May I see a POC with prototypes for that?

    Because this

    > sub catchif ($&;@)

    will require a sub before and a comma after the block.

    You are right. It would have been too easy. ;-) perlsub is quite clear:

    An & requires an anonymous subroutine, which, if passed as the first argument, does not require the sub keyword or a subsequent comma.

    I did not remember the "first argument" exception and assumed an anonymous sub would work in any position.

    Alexander

    --
    Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so". ;-)
      > assumed an anonymous sub would work in any position.

      Oh that would be so nice...

      Cheers Rolf
      (addicted to the Perl Programming Language :)
      Wikisyntax for the Monastery