lepsi varianta $^S (virtualizace)

Honza Pazdziora adelton na fi.muni.cz
Úterý Říjen 25 11:23:50 MEST 2005


On Tue, Oct 25, 2005 at 10:55:42AM +0200, Jan Kasprzak wrote:
> 
> existuje nejaka lepsi varianta $^S ktera by mi rekla, v kolikatem
> vnorenem eval { } se nachazim, pripadne jeste lepe, neco co by se
> zavolalo pri vstupu a opusteni eval { } ?
> 
> 	Mam snahu zachycovat chybovy vystup (vychazim z Tie::STDERR),
> ale chtel bych, aby tohle zachyceni fungovalo i ve vecech, ktere
> bezi uvnitr evalu (cili treba ModPerl::Registry), ale zase abych
> nesebral chybovy vystup tem pode mnou, co ho chteji taky zachycovat
> (cili vnoreny eval { } a vyjimky).

Jde Ti o chybovy vystup, nebo o ty vyjimky (nebo o oboji)? Pokud
o vyjimky, tak $SIG{__DIE__}:

$ perl
$SIG{__DIE__} = sub { print "siged [@_]\n"; };
eval {
        eval {
                die "Krtek";
        };
        print "evaled2 [$@]\n";
        DBI->connect;
};
print "evaled1 [$@]\n";
__END__
siged [Krtek at - line 4.
]
evaled2 [Krtek at - line 4.
]
siged [Can't locate object method "connect" via package "DBI" (perhaps you forgot to load "DBI"?) at - line 7.
]
evaled1 [Can't locate object method "connect" via package "DBI" (perhaps you forgot to load "DBI"?) at - line 7.
]

Pokud Ti jde o STDERR, tak by melo zabrat to tie STDERR.

Kdyztak dej priklad situaci, kdy se to ma jak chovat.

-- 
------------------------------------------------------------------------
 Honza Pazdziora | adelton na fi.muni.cz | http://www.fi.muni.cz/~adelton/
 .project: Perl, mod_perl, DBI, Oracle, large Web systems, XML/XSL, ...
		Only self-confident people can be simple.


Další informace o konferenci Perl