| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Общие вопросы > как прочитать файл в скаляр? |
| Автор: IceSunrise 28.8.2008, 12:48 | ||
| Привет! Как можно сразу прочитать содержимое файла в скаляр? Например, если файл текстовый, то я делаю так:
А можно как-нибудь без цикла? А если файл бинарный? Читать порциями по N байт? хочу проще |
| Автор: arto 28.8.2008, 12:57 |
| my $body = do { local $/; <FILE> }; |
| Автор: AriX 28.8.2008, 13:06 |
| File::Slurp |
| Автор: IceSunrise 28.8.2008, 13:13 |
| arto, спасибо, интересно, но с бинарными не пройдет номер. AriX, спасибо за наводку, так и думал, что есть подобный модуль. |
| Автор: gcc 28.8.2008, 13:13 | ||
|
| Автор: arto 28.8.2008, 13:25 |
| хм, почему не пройдет? # perl -e 'open F,$ARGV[0]; $a = do { local $/; <F> }; print $a;' /bin/ls > ls # cmp /bin/ls ls # |
| Автор: IceSunrise 28.8.2008, 15:47 |
| arto, вы правы! Прочитал, что когда переменная $/ не определена, это заставляет perl проглатывать целые файлы сразу. Здорово, спасибо! |
| Автор: nitr 28.8.2008, 17:33 |
| gcc, ROFL arto, прав. IceSunrise, надеюсь у вас файлы маленькие ;) |