Thread Wie Log-Verarbeitung ohne Abbruch bewerkstelligen (12 answers)
Opened by YAPD at 2019-05-31 19:09

haj
 2019-06-01 00:32
#190076 #190076
User since
2015-01-07
527 Artikel
BenutzerIn

user image
Der Verwendung nach (mit print und Stringvergleich) vermute ich, dass $CurrentObject kein Objekt ist, sondern der Name einer Klasse, also vielleicht durch ref($object) ermittelt wurde.
Das passt auch sonst zum Text: Dann könnte $Package eine Klasse sein, die von $CurrentObject "erbt" und möglicherweise in der gleichen Datei ("$Package im Modul $CurrentObject") definiert ist:

Code (perl): (dl )
1
2
3
4
5
6
7
package Foo; # $CurrentObject = 'Foo'

package Bar;
# da gibt's nun mehrere Schreibweisen...
use parent -norequire, 'Foo'; 
# use base 'Foo';
# our @ISA = ('Foo');

...anderswo:
Code (perl): (dl )
1
2
my $object = Bar->new; 
$Package = ref $object;


...und nun ist es so weit: $CurrentObject && $CurrentObject ne $Package ist "wahr".

Und dazu:
2019-05-31T20:36:39 YAPD
Außerdem noch :
Wenn ich die Log - Ausgabe bemühe, werden die Subroutinen übergeben.
Leider die Falschen. Das ist der relevante Teil des Log() Aufrufs :


Das liegt an Deiner Zählung: caller(0) liefert die Daten der eigenen Routine - und das ist nun mal Kernel::System::Log::Log, und caller(1) liefert Daten von deren Aufrufer _DieWithError. Du willst vermutlich caller(1) und insbesondere caller(2) sehen.

View full thread Wie Log-Verarbeitung ohne Abbruch bewerkstelligen