私の Perl プログラムは、USB 経由で接続されたシリアル デバイスからデータを読み取っています。疑似 Perl での私のスクリプトの見出し:
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 )
}
すべて正常に動作し、USB からデバイスを取り外しても、デバイス ファイルが消えて再表示されると、その状況から回復できます。自分のスクリプトから生成されたすべてのエラーをキャッチできますが、ロードされたモジュール (Device::SerialPort) も警告を生成し、それらをログに表示したくありません。
これらの特定の警告が表示されないように、コードにある種のフラグを追加できますか? 自分のスクリプトからの警告ではなく、モジュールからの警告のみが抑制されることが重要です。現在、次のようになっています。
[/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...... /usr/lib/perl5/Device/SerialPort.pm 行 2214 で、初期化されていない値 $count_in に加えて (+) が使用されています。 /usr/lib/perl5/Device/SerialPort.pm 行 2232 で、初期化されていない値 $string_in を連結 (.) または文字列で使用しています。 [/dev/ttyUSB1] 再起動が必要です! [/dev/ttyUSB1] シリアル ポートを開けません: そのようなファイルまたはディレクトリはありません [/dev/ttyUSB1] シリアル ポートを開けません: そのようなファイルまたはディレクトリはありません [/dev/ttyUSB1] シリアル ポートを開けません: そのようなファイルまたはディレクトリはありません [/dev/ttyUSB1] 0x0000 : 41 42 01 40 71 01 1C E4 80 99 80 80 80 80 00 00 : AB.@q............ [/dev/ttyUSB1] 0x0010 : 00 03 00 00 83 00 01 01 00 00 00 00 00 00 00 00 : ................
ですからUse of uninitialized value
、私が取り除きたいのは 2 つの警告についてです。他の警告は私自身のログです。
- libdevice-serialport-perl 1.04-2build1
- パール v5.12.4