http://qs321.pair.com?node_id=1091327


in reply to Trying to write a subroutine to return if file is Text or Binary

I was playing around with this and expecting to post something clever about how -B doesn't mean binary - according to the documentation it means "not ASCII", which ain't the same as binary. However ...

$ perl -v This is perl, v5.8.8 $ cat foo
文本
(this is apparently Chinese for "text") $ perl -e 'print -T "foo"' 1 $ perl -e 'print -B "foo"' $

So even as far back as 5.8.8 it DTRT, although the documentation is wrong.

Update: sorry for the bad formatting - perlmonks doesn't like me cutting and pasting funny foreign characters into a <code> block.

Replies are listed 'Best First'.
Re^2: Trying to write a subroutine to return if file is Text or Binary
by csorrentini (Acolyte) on Jun 26, 2014 at 17:05 UTC
    Thank you all for the quick replies. After posting this I realized how I was completely overlooking the fact that it is still considered text even putting zeroes and ones in the file. Essentially all I wanted was it to return text file if sending something like a .txt doc or something similar and return binary file IF a binary file was sent to it and it works like a charm. Again, thanks all
      After posting I went to p5p and asked "WTF?". Apparently there is work going on (whether it'll be accepted and whether it'll be in 5.22 or not remains to be seen) to improve -T and -B. See here and here.