Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight
 
PerlMonks  

Re: But cluck gives you more.

by steves (Curate)
on Dec 29, 2004 at 16:03 UTC ( #418004=note: print w/ replies, xml ) Need Help??


in reply to But cluck gives you more.
in thread How do I get Cluck output into a log file?

longmess and shortmess do include caller information. The key is how deep you are in the stack, as Carp has a set of rules for deciding how much stack trace (if any) to include. I'm not 100% sure the rules are consistent across all the calls. Here's a test program that illustrates. Maybe a monk with more Carp knowledge can comment. I need to think about it some more ... I suspect there's some nonobvious consistency here.

use strict; use Carp qw(cluck); sub test_errors { cluck "First test message"; my $long = Carp::longmess("Second test message"); my $short = Carp::longmess("Third test message"); print STDERR $long; print STDERR $short; test2(); } sub test2 { cluck "Fourth test message"; my $long = Carp::longmess("Fifth test message"); my $short = Carp::longmess("Sixth test message"); print STDERR $long; print STDERR $short; } test_errors();
produces:
First test message at cluckt line 8 main::test_errors() called at cluckt line 30 Second test message at cluckt line 30 Third test message at cluckt line 30 Fourth test message at cluckt line 21 main::test2() called at cluckt line 16 main::test_errors() called at cluckt line 30 Fifth test message at cluckt line 16 main::test_errors() called at cluckt line 30 Sixth test message at cluckt line 16 main::test_errors() called at cluckt line 30

Basically, longmess and shortmess appear to always include one less stack frame than cluck does. Maybe someone should cluck about this. ;-)

Note that I got the same results by calling longmess and shortmess directly in the print calls rather than getting the messages into local variables first.


Comment on Re: But cluck gives you more.
Select or Download Code

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others wandering the Monastery: (9)
As of 2015-07-07 01:04 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 (86 votes), past polls