use 5.024; use strict; use warnings; package Kernel::OM { my $OM; sub init { my $class = shift; my %params = @_; die "Nur eine Initialisierung, bitte!" if $OM; $OM = bless { %params }, $class; return $OM; } sub instance { my $class = shift; die "Noch nicht initialisiert!" unless $OM; return $OM; } } # ------- Benutzt wird das wie folgt: use Data::Dump qw/dump/; # Einmal, am Anfang: Kernel::OM->init (irgend => 'welche', para => 'meter') or die "Hoppla: Kein Objektmanager!"; # und dann, von überall her: my $om = Kernel::OM->instance; dump $om;