Program My Perl odczytuje dane z urządzenia szeregowego podłączonego przez USB. Nagłówki z mojego skryptu w pseudo-Perl:Jak ukryć ostrzeżenia Perla emitowane z kodu załadowanego modułu?
use warnings;
use strict;
use Device::SerialPort;
my $PortObj = tie(*$handle , "Device::SerialPort" , $PortName) or die "Cannot open serial port: $!\n";
while (1) {
my $readLength = read($handle , my $frameData , $frameLength)
}
Wszystko działa dobrze, a nawet kiedy odłączyć urządzenie z USB jestem w stanie wyjść z tej sytuacji, gdy plik znika i pojawia się urządzenie. Mogę wychwycić wszystkie błędy powstałe z mojego własnego skryptu, ale załadowane moduły (Device :: SerialPort) również powodują ostrzeżenia i nie chcę, aby pojawiały się w moim logowaniu.
Czy mogę dodać flagę do mojego kodu, więc nie widzę tych ostrzeżeń? Ważne jest dla mnie, że tylko ostrzeżenia z modułu (modułów) są stłumione, a nie ostrzeżenia z mojego własnego skryptu. Obecnie wygląda to tak:
[/dev/ttyUSB1] 0x0020 : 00 00 00 00 00 00 00 00 00 AA 93 82 73 68 5E 58 : ............sh^X [/dev/ttyUSB1] 0x0030 : 55 54 52 52 4F 4E 50 51 50 00 00 00 00 00 00 00 : UTRRONPQP....... Use of uninitialized value $count_in in addition (+) at /usr/lib/perl5/Device/SerialPort.pm line 2214. Use of uninitialized value $string_in in concatenation (.) or string at /usr/lib/perl5/Device/SerialPort.pm line 2232. [/dev/ttyUSB1] Restart required! [/dev/ttyUSB1] Cannot open serial port: No such file or directory [/dev/ttyUSB1] Cannot open serial port: No such file or directory [/dev/ttyUSB1] Cannot open serial port: No such file or directory [/dev/ttyUSB1] 0x0000 : 41 42 01 40 71 01 1C E4 80 99 80 80 80 80 00 00 : [email protected] [/dev/ttyUSB1] 0x0010 : 00 03 00 00 83 00 01 01 00 00 00 00 00 00 00 00 : ................
Więc to jest o dwóch Use of uninitialized value
ostrzeżeń, że chcą się pozbyć. Pozostałe ostrzeżenia to moje własne logowanie.
- libdevice-SerialPort-perl 1.04-2build1
- Perl v5.12.4
Byłby to dobry pomysł, aby zgłosić te błędy autorowi. – ikegami
Po otrzymaniu porady. – jippie