Over the years I've dabbled in perl and every once in a while I get bit by this problem. Basically strings I try and print come out mangled. As an example
The output from running this is#!/usr/bin/perl use strict; use Device::SerialPort; use FileHandle; my $fh = FileHandle->new; my $port = Device::SerialPort->new("/dev/ttyACM1"); $port->databits(8); $port->baudrate(57600); # <-- match to arduino settings $port->parity("none"); $port->stopbits(1); $port->dtr_active(0); my $i=1000; my $rt = 0; my $rh = 0; my $it = 0; my $foos=""; select(STDOUT); while($i> 0) { my $inp = $port->lookfor; if($inp ne "") { if($inp =~ /Remote Temp:/) { $rt = $inp; $rt =~ s/Remote Temp://; print "inp=$inp\n"; print "rt=$rt\n"; $foos="$rt does not print rt \n"; print $foos; print "rt=$rt\n\n"; } } } $port->close; undef $port;
inp=Remote Temp:22.30 rt=22.30 does not print rt rt=22.30
Whats happening? BTW the input is a string like "Remote Temp:22.30"
In reply to Strings mangled on printing by gordu
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |