Thread Problem mit Filehandle im END Block (8 answers)
Opened by PROXEN at 2014-08-04 20:23

PROXEN
 2014-08-04 20:23
#176708 #176708
User since
2013-07-23
21 Artikel
BenutzerIn
[default_avatar]
Hallo,

mit folgendem Code möchte ich bestimmte Sachen in ein File loggen.
Mit select LOGFILE oder select STDOUT möchte ich umschalten um nicht alles loggen zu müssen.
Wenn ich jetzt aber das Programm bei der Pause mit STRG+C abbreche funktioniert das LOGGEN ins File nicht mehr und ich weiß nicht warum. Läuft das Programm durch wird alles gelogged.

thx proxen



Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 
$SIG{INT} = \&interrupt;
 
open LOGFILE, "|-", "tee some_file.out";
LOGFILE->autoflush(1);

select LOGFILE;
print "fileconsole!\n";
print "pause\n";
my $in = <STDIN>;
select STDOUT;
print "console1\n";
 
die;
sub interrupt {
    print  "Caught a control c!\n";
    die;   
}

END { 
  select LOGFILE;
  if(fileno(LOGFILE)){
    print "close logfile\n";
    close(LOGFILE) or warn;
  }
}

View full thread Problem mit Filehandle im END Block