sub myWrite { my( $port, $data ) = @_; for my $chunk ( unpack '(a15)*', $data ) { $port->write( $chunk ); sleep 0.1; ## may not be necessary; or maybe 0.001 is enough; experiment. } } ... # $ob->write( "$string\n"); myWrite( $ob, $string );