On Fri, 25 Feb 2005 11:22:07 -0700 (MST), David Smith <[EMAIL PROTECTED]> wrote: > I wrote a perl TCP/IP client program that talks to a server. The server > sends me ASCII over the scoket, but it appends a NULL byte to every string > (0x00), which I discovered with file redirection and a hex editor (it was > invisible in the shell output). How can I prune this byte off of the > string in Perl? I tried chomp, but it appears to only remove \r and \n. I > also tried s/\s+$// but \s doesn't appear to match the 0x00 character.
chomp only removes \r and \n, chop removes the last character of the string, but I don't know if it will do null bytes (don't see why it wouldn't) but you don't want to do that anyway. Also, a null byte isn't white space, so \s wouldn't work. You'd want to do $in =~ s/\x0$// or, if you want to be sure and trim off *all* null bytes from the end of the string: $in =~ s/\x0+$// (technically, you should use \x00 but this shortcut works in this instance) -- Alan .===================================. | This has been a P.L.U.G. mailing. | | Don't Fear the Penguin. | | IRC: #utah at irc.freenode.net | `==================================='