First off, it's incredibly hard to read your question. Please fix that.
Secondly, as for your question itself, you seem to be asking "how can I clear out any characters waiting in the input buffer for a particular filehandle". The easiest way to accomplish this is with the Term::ReadKey module:
use Term::ReadKey;
# ... do some stuff to the filehandle COMPORT ...
# ... do the command that gives the long response ...
# Clear the remaining input
while (defined(ReadKey(0.1,COMPORT))) {}
# ... do some other command ...
That code will pull characters until the RX buffer is empty and will wait 0.1 seconds on an empty RX buffer to decide that it's really done. You can use "-1" if you want it to exit as soon as the RX buffer is empty and not wait.
I do hope that you're using sysread or some similar unbuffered system to deal with serial ports - otherwise, you'll have all sorts of trouble.
--
@/=map{[/./g]}qw/.h_nJ Xapou cets krht ele_ r_ra/;
map{y/X_/\n /;print}map{pop@$_}@/for@/
|