package test::log; use strict; use warnings; $test::log::VERSION = "0.0.2"; my %defaults = ( write_logfile => 0, # 0 => nein, 1 => ja logfile_name => 'DEFAULT_logfile_name', logfile_path => 'C:/WINNT/system32/config', ); sub new { my ( $class, $ref ) = @_; my $self; if ( ref( $ref ) ne 'HASH' ) { die "Please provide a hash reference as argument!\n"; } # uebernehme die definierten Defaults und die Inhalte der übergebenen # Hash-Referenz; diese Inhalte ueberlagern ggfs. die Defaults, sodass in # $self die Defaults für Parameter gelten, die nicht mitgegeben wurden $self = { %defaults, %$ref }; bless $self, ref( $class ) || $class; return $self; } sub logfilename { my ( $self, @args ) = @_; return $self->{logfile_name} if exists $self->{logfile_name}; return undef; } 1;