my $usb = '/dev/ttyUSB-1-4'; my $command = '0015070400a4'; die("Error run 'send' ($!)") unless( send($usb, $command) ); sub send { my $usb = shift; my $raw = shift; $raw =~ s/([0-9a-f]{2})/chr( hex( $1 ) )/gie; open(my $fh,'|-',"socat -t1 - $usb,b2400") or return 0; binmode( $fh ); print $fh $raw; close( $fh ) or return 0; return 1; }