<font size=2 face="sans-serif">I've used:</font>
<br><font size=2 face="sans-serif"> my $ident = 'web ';</font>
<br><font size=2 face="sans-serif"> $ident .= "$DBNAME "
if $DBNAME;</font>
<br><font size=2 face="sans-serif"> for my $level ( 0 .. 5 ) {</font>
<br><font size=2 face="sans-serif"> #my ($package, $filename,
$line) = caller($level);</font>
<br><font size=2 face="sans-serif"> my ($package, $filename,
$line, $subroutine, $hasargs,</font>
<br><font size=2 face="sans-serif"> $wantarray,
$evaltext, $is_require, $hints, $bitmask)</font>
<br><font size=2 face="sans-serif"> = caller($level);</font>
<br><font size=2 face="sans-serif"> last unless $filename
and $filename =~ /\w/;</font>
<br><font size=2 face="sans-serif"> $subroutine = $evaltext
if $subroutine eq "(eval)";</font>
<br><font size=2 face="sans-serif"> $package = ($package eq
"main" ? "" : $package . "::");</font>
<br><font size=2 face="sans-serif"> $filename =~ s|\.\./|/|g;</font>
<br><font size=2 face="sans-serif"> $filename =~ s|//|/|g;</font>
<br><font size=2 face="sans-serif"> $ident .= "called
from $package" . "$filename($subroutine line: $line) ";</font>
<br><font size=2 face="sans-serif"> } # for level</font>
<br>
<br><font size=2 face="sans-serif">This is to create a preamble to an error
msg for use w/ syslog but the idea is to walk back the caller stack a ways
in case A called B called C called D (who's outputting the mgs).</font>
<br>
<br><font size=2 face="sans-serif">a</font>
<br><font size=2 face="sans-serif">-------------------<br>
Andy Bach<br>
Systems Mangler<br>
Internet: andy_bach@wiwb.uscourts.gov<br>
Voice: (608) 261-5738; Cell: (608) 658-1890<br>
<br>
A host is a host, from coast to coast<br>
and everyone talks to a host that's close<br>
unless of course, the host that's close<br>
is busy, hung or dead. -- DCP</font>