Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?
 
PerlMonks  

Re^2: Executing Systems Calls with Care

by K_M_McMahon (Hermit)
on Feb 15, 2005 at 08:40 UTC ( #431060=note: print w/ replies, xml ) Need Help??


in reply to Re: Executing Systems Calls with Care
in thread Executing Systems Calls with Care

UPDATE: I modified this post because I thought noone had answered it and I thought better of my question after testing. In the interest of keeping following posts On Topic, this sub_question was initially,
"Will it work if you substitute &some_subroutine; instead of die?" in the section local $SIG{ALRM} = sub { die "alarm\n" };
CURRENT QUESTION:

local $SIG{ALRM} = sub { die "alarm\n" };
I can replace the die "alarm\n" section here with a subroutine with no problems (actually tested it ;->)

but this brings up something else that I don't understand.. What causes the above example to enter the
if ($@) { die unless $@ eq "alarm\n"; # propagate unexpected errors # handle the timed out operation }
section?

-Kevin
my $a='62696c6c77667269656e6440676d61696c2e636f6d'; while ($a=~m/(^.{2})/s) {print unpack('A',pack('H*',"$1"));$a=~s/^.{2}//s;}


Comment on Re^2: Executing Systems Calls with Care
Select or Download Code
Re^3: Executing Systems Calls with Care
by matija (Priest) on Feb 15, 2005 at 09:23 UTC
    Will it work if you substitute &some_subroutine; instead of die?

    Well, in principle, sure. But make sure that he some_subroutine realizes that there may be error conditions it can't handle, and dies if it encounters a situation it isn't explicitly designed to handle.

    You need to be defensive when you're designing this subroutine. Defensive and paranoid.

Re^3: Executing Systems Calls with Care
by phaylon (Curate) on Feb 15, 2005 at 12:05 UTC
    As 'perldoc -f eval' says:

    If the code to be executed doesn't vary, you may use the eval-BLOCK form to trap run-time errors without incurring the penalty of recompiling each time. The error, if any, is still returned in $@.

    Ordinary morality is for ordinary people. -- Aleister Crowley

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others meditating upon the Monastery: (4)
As of 2015-07-03 23:30 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (57 votes), past polls