use strict; use warnings; use Inline C => q{ int evalseq() { return PL_evalseq; }}; use Log::Log4perl; use Log::Dispatch::FileRotate; my $conf = q( log4perl.category.Script = DEBUG, ScriptFileRotateAppender log4perl.appender.ScriptFileRotateAppender = Log::Dispatch::FileRotate log4perl.appender.ScriptFileRotateAppender.filename = evalseq.log log4perl.appender.ScriptFileRotateAppender.mode = append log4perl.appender.ScriptFileRotateAppender.size = 10000000 log4perl.appender.ScriptFileRotateAppender.max = 50 log4perl.appender.ScriptFileRotateAppender.layout = PatternLayout log4perl.appender.ScriptFileRotateAppender.layout.ConversionPattern=[%p] %d %m%n ); Log::Log4perl::init( \$conf ); my $log = Log::Log4perl::->get_logger(q(Script)); my $count = 0; until ($@) { $count++; eval 'my $abc = 1; $abc++; '; unless ($count % 1e5) { $log->info( "count=$count evalseq=" . evalseq() ); } } $log->error( $count .' ' .$@ ); __END__ $ perl -v This is perl, v5.10.0 built for x86_64-linux $ uname -a Linux desktop 2.6.18-194.8.1.el5 #1 SMP Thu Jul 1 19:04:48 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux