From: Dobrica Pavlinusic Date: Fri, 6 Aug 2010 19:25:35 +0000 (+0200) Subject: fail chain without serial ports X-Git-Tag: RFID-Biblio-0.02~46 X-Git-Url: http://git.rot13.org/?p=Biblio-RFID.git;a=commitdiff_plain;h=7e90559bfc8990799ba86a105f10c3c1cd3b72fa;hp=d4c7751240bdcdbd2a360893a9efa830ee5946bf fail chain without serial ports --- diff --git a/lib/RFID/Biblio/Reader/Serial.pm b/lib/RFID/Biblio/Reader/Serial.pm index 74f8cfa..b118fe3 100644 --- a/lib/RFID/Biblio/Reader/Serial.pm +++ b/lib/RFID/Biblio/Reader/Serial.pm @@ -23,9 +23,7 @@ sub new { my $self = {@_}; bless $self, $class; - $self->port; - - $self->init && return $self; + $self->port && $self->init && return $self; } @@ -49,12 +47,15 @@ sub port { return; } - $self->{port} = Device::SerialPort->new( $settings->{device} ) - || die "can't open serial port: $!\n"; - - $self->{port}->$_( $settings->{$_} ) - foreach ( qw/handshake baudrate databits parity stopbits/ ); + if ( $self->{port} = Device::SerialPort->new( $settings->{device} ) ) { + $self->{port}->$_( $settings->{$_} ) + foreach ( qw/handshake baudrate databits parity stopbits/ ); + } else { + warn "can't open serial port: $!\n"; + $self->{port} = 0; + } + $self->{port}; } 1