Using Apache/1.3.27 (Unix) mod_gzip/1.3.26.1a mod_perl/1.27, perl 5.8.0. Hi,
I'm working with some servers which print debugging messages through a wrapper function that calls Apache::Log::debug, here is a simplified version: sub mydebug { my $msg = shift; Apache->server()->log()->debug($msg); } Since Apache::Log::debug inserts the file and line number of its calling location into each log entry, this means that our log entries all contain the same file and line number, corresponding to the location of the Apache::Log::debug call inside 'mydebug'. I'm trying to figure out how to get Apache::Log to use the correct file and line numbers, i.e. those of the caller of our wrapper function, instead. The perlfunc man page suggests that the 'goto &NAME' form of 'goto' can be used to trick 'caller', but rewriting the wrapper function in the following manner: sub mydebug { my $msg = shift; @_=(Apache->server()->log(), $msg); goto &Apache::Log::debug; } doesn't change the behavior - it still manages to print the file and line number of the 'goto' statement, not of the caller of 'mydebug'. Can anyone help us with this? Thanks in advance, Frederik Eaton Summary of my perl5 (revision 5.0 version 8 subversion 0) configuration: Platform: osname=linux, osvers=2.4.20, archname=i686-linux-64int uname='linux yourmom 2.4.20 #4 smp thu feb 27 15:11:19 pst 2003 i686 unknown ' config_args='-Duse64bitint -de' hint=recommended, useposix=true, d_sigaction=define usethreads=undef use5005threads=undef useithreads=undef usemultiplicity=undef useperlio=define d_sfio=undef uselargefiles=define usesocks=undef use64bitint=define use64bitall=undef uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='cc', ccflags ='-fno-strict-aliasing -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64', optimize='-O2', cppflags='-fno-strict-aliasing' ccversion='', gccversion='2.96 20000731 (Red Hat Linux 7.1 2.96-98)', gccosandvers='' intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=12345678 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12 ivtype='long long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8 alignbytes=4, prototype=define Linker and Libraries: ld='cc', ldflags ='' libpth=/lib /usr/lib libs=-lnsl -ldl -lm -lc -lcrypt -lutil perllibs=-lnsl -ldl -lm -lc -lcrypt -lutil libc=/lib/libc-2.2.4.so, so=so, useshrplib=false, libperl=libperl.a gnulibc_version='2.2.4' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-rdynamic' cccdlflags='-fpic', lddlflags='-shared' Characteristics of this binary (from libperl): Compile-time options: USE_64_BIT_INT USE_LARGE_FILES Built under linux Compiled at Feb 5 2003 07:25:46 -- Report problems: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html List etiquette: http://perl.apache.org/maillist/email-etiquette.html