Tim, > > > > When you call [EMAIL PROTECTED]>getMessage(), it in turn has eval{} > > statements > > inside it somewhere, thereby resetting the $@ globlal variable. > > Is there some reason why the code within getMessage that calls eval {} > can't do > > local $@; > > to protect the caller from such surprises?
I'm not a pro when it comes to "local". Doesn't that make sense only if the exception is treated locally (inside the Inline::Java code) ? In most cases I will have code like this inside Inline::Java: eval { # do something } ; if ($@){ if ($@ =~ /some exception type/){ # treat the exception locally } else { # let the caller handle it die $@ ; } } Can "local $@" be used in such cases? Ideally, if I understand correctly, the goal would be not to change (the "real") $@ unless another "fatal" error has occured. > > Tim. > -- ===================== Patrick LeBoutillier Laval, Québec, Canada