in reply to read data 1 byte at a time

Check out getc for reading one character at a time. If your STDIN needs to read the keyboard, see also Term::ReadKey.
while(my $char = getc){ print "$char\n"; } __END__