1
2
3
4
5
6
7
8
9
10
11
12
my $LH_Module = ( caller( 1 ) )[ 3 ]; # Das ist der Aufruf
my $LH_Package = $LH_Module;
print "Package : $LH_Package" , "\n";
# Bestimmung des Caller - Aufrufs ( Sub - Routine )
my $LH_Caller = ( split( /::/ , ( caller( 1 ) )[ 3 ] ) )[ -1 ];
print "Caller : $LH_Caller" . "\n";
# Entfernung der Sub - Routine aus der Modul - Bezeichnung
$LH_Module =~ s/\::$LH_Caller//;
print "Module : $LH_Module" . "\n";
my $LH_Caller = ( split( /::/ , ( caller( 1 ) )[ 3 ] ) )[ -1 ];
my $LH_Caller = (split( /::/ , ( caller( 1 ) )[ -1 ];
my ($LH_Caller) = reverse split /::/, caller(1);
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
#! /usr/bin/env perl use strict; use warnings; use 5.020; my $package = "Kernel::Extensions::IMCR::Loader"; my ( $module, $caller ) = $package =~ m{(\S+)::([^:]+)$}; say "Package: $package"; say "Module: $module"; say "Caller: $caller"; __END__;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
#! /usr/bin/env perl use strict; use warnings; use 5.020; my $package = "Kernel::Extensions::IMCR::Loader"; my @elements = split m/::/, $package; my $caller = pop @elements; my $module = join "::", @elements; say "Package: $package"; say "Module: $module"; say "Caller: $caller"; __END__;
1
2
3
4
$Self -> { Software_Extensions } =
{ 'IMCR' => { 'Bezeichnung' => 'IManage Config Reader' ,
'Release' => '2.1.0' ,
'Module' => 'Kernel::Extensions::IMCR' } };
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
#! /usr/bin/env perl use strict; use warnings; use 5.020; my $package = "Kernel::Extensions::IMCR::Tester::Test"; # Annahme, es ist immer etwas mit Kernel::Extensions::IMCR::* my @elements = split m/::/, $package; my $module = join "::", splice(@elements,0,3); # immer die ersten drei Teile als Modul annehmen my $caller = join "::", @elements; # der Rest wird zum caller zusammengesetzt say "Package: $package"; say "Module: $module"; say "Caller: $caller"; __END__;
1
2
3
4
5
6
7
8
9
10
11
12
13
my $LG_Package = "IMCR";
if( $LG_FH_Mode eq "Standard" )
{
$LG_FH_Signifier = $LG_Signifier_Standard . "_" . "Standard";
$LG_FH_Directory = $LG_Directories_Standard;
}
if( $LG_FH_Mode eq "SE" )
{
$LG_FH_Signifier = $LG_Signifier_Standard . "_" . $LG_Package;
$LG_FH_Directory = $LG_Directories_Extensions;
}
local $Kernel::OM = Kernel::OM -> New( Debug_Mode => $Parameter{ Debug_Mode } );
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
sub new {
# Initialisierung des Konstruktors
my ( $Class , %Parameter ) = @_;
my $Self = { };
bless( $Self , $Class );
# ------------------------------------------------------------------------------------------
$Kernel::OM -> { SE } -> { 'Kernel::Extensions::IMCR' } -> { Name } = "IMCR";
$Self -> { Testumgebung } = 'ERFOLG';
my $LH = $Kernel::OM -> Load( 'Kernel::Logs' );
$LH -> Log( Prio => 'Error' ,
Code => 'T1000' ,
MSG => 'Testumgebung' );
return $Self;
}
$Kernel::OM -> { SE } -> { 'Kernel::Extensions::IMCR' } -> { Name } = "IMCR";
QuoteIch wollte erst einen Flag wie "Self -> { SE }" setzen und im Object - Loader abfragen, aber dann funktioniert die hier abgebildete Log - Verarbeitung in der new Methode nicht ( da er noch nicht weiß, dass es eine Extension ist ).