Hi. Sorry to ask again, but there are two independent questions here. 1) What 
is the purpose or best use of 'warn'. 2) How to test code that contains a 
'warn' used as it should be.
1) I thought that a 'warn' would be used where sometimes the user would want a 
fail but not always. I have a module that in normal use I want to continue even 
if there is a bad condition which has a default action, but that I can get to 
fail if I set an external flag. Maybe I'm wrong. But this is not the question I 
originally asked.
2) whatever may be the purpose of a warn, and I assume there is a good one 
since its in core perl6, surely the code that contains it should be tested, 
which means triggering the condition and picking up the warning. I can't work 
out how to do this. Can't get Test::Output to pick up the message sent to 
stderr from warn.
Regards


-------- Original message --------From: Larry Wall <la...@wall.org> Date: 
30/04/2016  06:45  (GMT+08:00) To: Brandon Allbery <allber...@gmail.com> Cc: 
Timo Paulssen <t...@wakelift.de>, perl6-users <perl6-us...@perl.org> Subject: 
Re: testing with a "warn" 
On Fri, Apr 29, 2016 at 03:50:21PM -0400, Brandon Allbery wrote:
: On Fri, Apr 29, 2016 at 3:47 PM, Brandon Allbery <allber...@gmail.com>
: wrote:
: > Oh, they are resumable exceptions? Useful but rather high cost I'd think.
: > (Granting that perl6 isn't one of those languages that think exceptions
: > should be normal control flow. But anyone who decides it should be is
: > probably in for a very slow slog.)

Warnings are implemented like return or next; control exceptions are
more efficient than error exceptions.  (This is one of the reasons you
have to catch them with a CONTROL block rather than a CATCH block.)

: ...also I now know that I should not use warn in many cases where I would
: have otherwise.

If you need to produce actual warnings in hot code, something's wrong
with your design.  (If you just want to print to STDERR, you can use
'note' instead.)

Larry

Reply via email to