Thread Hilfestellung bei Problem mit package (20 answers)
Opened by jan99 at 2015-03-27 08:06

jan99
 2015-03-27 11:41
#180414 #180414
User since
2008-09-18
439 Artikel
BenutzerIn
[default_avatar]
Moin !

erst einmal vielen Dank.

Jetzt habe ich einen Teil verstanden schon einmal. In den sub shell bzw. log wird in $self->{$XXXX} der jeweilige Wert in $XXXX abgelegt.

Das Schalten der Statusschalter funktioniert schon einmal. Habe zunächst das show etas modifiziert bei mir eingebaut.

Code (perl): (dl )
1
2
3
4
sub show_status {
    my $self=shift;
    print "Log: ", $self->log(), ", Shell: ", $self->shell()."\n";
}


und dann in write eingebaut:

Code (perl): (dl )
1
2
3
4
5
sub write  {
  $_[0]->show_status();
  $_[0]->fh->print($_[1]."\n") if($_[0]->log()); 
  print($_[1]."\n") if($_[0]->shell()); 
  }


Die ersten Zeilen in meinem Hauptskript sehen jetzt so aus:
Code (perl): (dl )
1
2
3
4
5
# Reportsteuerung
my $log=EBL::ebl_reporting->new();
$log=EBL::ebl_reporting->open($config{logfile_name});
$log->log($config{logstatus});
$log->shell($config{shellstatus});


Merkwürdigerweise erfolgt die Ausgabe in write aber immer noch in doppelter Bildschirm-Ausgabe!

Mit dem STDOUT (eine meiner vielen Verständnisbaustellen) in open (wie gepostet und nicht verändert seit x-Zeiten!) hat das vermutlich nichts zu tun ?!?!?

Hast Du dazu eine Erklärung ?

Eine Frage noch zu Deiner Antwort. Warum hast Du die Zeile

Code (perl): (dl )
1
2
package main;
use 5.14.0;


Eingefügt. Wenn ich das übertrage, dann würde ich das immer in 3 Dateien aufsplitten !

Gruß Jan

PS: jetzt ist erst einmal Wochenende ... Euch auch ein schönes !
Last edited: 2015-03-27 12:45:31 +0100 (CET)
perl-Greenhorn - Win7 64bit / strawberry (ehem. activeperl) - www.OpenStreetMap.de

View full thread Hilfestellung bei Problem mit package