Как я могу прочитать данные из файла произвольного типа в Perl? - PullRequest
3 голосов
/ 05 ноября 2010

Я пытаюсь прочитать содержимое файла, чтобы я мог зафиксировать его в базе данных (мне не нужно анализировать данные, и мне все равно, что они говорят).

Файлы могут быть любым произвольным типом (.exe, .txt, без расширения и т. Д.), Но из того, что я могу сказать, есть недвоичный способ чтения файла и определенный двоичный способ ( используя binmode), и кажется, что если вы используете их не по назначению для неправильного типа, он может испортить ваши файлы (по крайней мере, в Windows?)

Есть ли удобный способ чтения содержимого файла, не беспокоясь о том, какие у него данные?

Ответы [ 2 ]

7 голосов
/ 05 ноября 2010

После открытия дескриптора файла в режиме read примените к нему binmode.

open my $fh, '<', '/path/to/file' or die "Error while opening: $!";
binmode $fh;
3 голосов
/ 05 ноября 2010

Алан ответ правильный. Даже если файл «текст», который вы хотите обработать, он такой же двоичный, как и любой другой файл. Он не "испортит" ваш файл.

Однако, когда приходит время работать с вашим текстовым файлом как с текстовым файлом (отображение, обработка и т. Д.), Вам может потребоваться выполнить s/\x0D?\x0A/\n/g; s/\x0D/\n/g; для него. Это превратит новые строки Mac, Windows и Unix в новые строки текущей системы.

Если бы вы могли дать больше контекста относительно того, что вы делаете, возможно, вы могли бы получить лучший ответ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...