Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation
 
PerlMonks  

Re: Just before subroutine returns

by Athanasius (Archbishop)
on Aug 29, 2017 at 06:32 UTC ( [id://1198247]=note: print w/replies, xml ) Need Help??


in reply to Just before subroutine returns

Hello solegaonkar,

Try the End module. Here’s a trivial example:

use strict; use warnings; use End; foo(4); foo(6); sub foo { my ($n) = @_; my $x = end { print "\$n = >$n<\n" }; return 1 if $n < 5; $n *= 52; return $n; }

Output:

16:31 >perl 1810_SoPW.pl $n = >4< $n = >312< 16:31 >

Note that the assignment to $x is needed here, because of the way End works, even though the value of $x isn’t used.

Hope that helps,

Athanasius <°(((><contra mundum Iustus alius egestas vitae, eros Piratica,

Replies are listed 'Best First'.
Re^2: Just before subroutine returns
by karlgoethebier (Abbot) on Aug 29, 2017 at 18:21 UTC

    Even the command line to install it is pure fun:

    karls-mac-mini:monks karl$ cpanm End --> Working on End

    Thanks and regards, Karl

    «The Crux of the Biscuit is the Apostrophe»

    perl -MCrypt::CBC -E 'say Crypt::CBC->new(-key=>'kgb',-cipher=>"Blowfish")->decrypt_hex($ENV{KARL});'Help

Re^2: Just before subroutine returns
by solegaonkar (Beadle) on Aug 29, 2017 at 06:58 UTC
    Yes! That worked.. Thanks for your help!

      If you need to know which return returned, you might be able to wrap return using Keyword::Declare or Filter::Simple.

      Be warned: These are very powerful, therefore dangerous to use.

        I'd recommend Keyword::Simple , but for completeness: a sub can be left without return.

        Possibilities include:

        • implicit return at body's end
        • goto label in caller chain
        • goto &sub
        • die exception

        Cheers Rolf
        (addicted to the Perl Programming Language and ☆☆☆☆ :)
        Je suis Charlie!

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1198247]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (8)
As of 2024-04-19 14:20 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found