Thread Referenz auf FILEHANDLE oder Global
(10 answers)
Opened by Karsten42 at 2018-04-27 11:09
Das Problem ist, daß Tie::Handle einen *Glob haben will, damit es mit Tie::Scalar keinen Konflikt gibt.
Andererseits funktioniert der Typeglob nur, wenn im Scalar auf welchen sich der glob bezieht, ein eindeutiger Type erkennbar ist. Untenstehender Trick funktioniert: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 use Win32::SerialPort qw(:STAT 0.19); use IO::Handle; # Dummy handle damit der Typeglob funktioniert my $com = IO::Handle->new; # und damit funktioniert der Typeglocb *COM = $com; my $PortObj = tie *COM, 'Win32::SerialPort', 'd:/home/dev/comport3.cfg' or die $@; # Modem abfragen my $out = "ATQ0V1E0".pack "C", 13; print COM $out; my ($BlockingFlags, $InBytes, $OutBytes, $LatchErrorFlags) = $PortObj->status() or die "can't get status"; print Dumper $PortObj->read($InBytes); Der Trick besteht also darin, daß ein beliebiges Handle als Dummy erstellt wird. Mit IO::File oder IO::String funktioniert das auch weil diese Klassen von IO::Handle erben. Danach kannst Du gleichermaßen anwenden. mfg Last edited: 2018-04-27 17:27:01 +0200 (CEST) |