On Sun, 10 Nov 2002, Michael G Schwern wrote: > At YAPC::Europe there was some discussion about Test::Builder->level, > $Test::Builder::Level and the fact that they don't really work well as > implemented. I know we reached some sort of consensus about how to do it > better, but I've forgotten it.
I remember telling you that I do this: sub test_foo { _bar(shift) } sub _bar { # for the rest of this function, call back another frame local $Test::Builder::level = $Test::Builder::level + 1; ... } Does that help? Surely the best thing to do would be to be able to call something in your base level function (test_foo in the above example) that declares that level one. Then whenever a T::B function is called it automatically looks back though caller() till it find a level one function and reports from failure from the caller before that. The only draw back I can see is it would mean that test_foo couldn't itself be recursive (though it could call another function that made it so) Mark. -- s'' Mark Fowler London.pm Bath.pm http://www.twoshortplanks.com/ [EMAIL PROTECTED] ';use Term'Cap;$t=Tgetent Term'Cap{};print$t->Tputs(cl);for$w(split/ +/ ){for(0..30){$|=print$t->Tgoto(cm,$_,$y)." $w";select$k,$k,$k,.03}$y+=2}