<p>Здравствуйте, товарищи.<br></p><p>Задача стоит так: есть перл-модули (самописные), созданные для парсинга неких данных и закладывания их в базу.</p><p>С использованием этих модулей нужно написать скрипт, который будет собственно получать данные и отдавать их функциям модуля.</p>
<p>Данные поступают в виде xls-файлов, которые по всей видимости набивают девочки какие-то, поэтому данные несколько странно выглядят.. но не в этом суть, ибо функции модуля обучены эти странности отлавливать и либо исправлять, либо сообщать об ошибке в специальную таблицу без останова работы скрипта.</p>
<p>Вопрос: как передавать данные скрипту:</p><p>1. Наиболее правильно.</p><p>2. Наиболее просто (чтобы юзер типа менеджера мог справиться с этой задачей, а я потом разбирался с обнаруженными ошибками).</p><p>Скрипты и модуль написаны под utf-8.</p>
<p>Сейчас передаю через csv, разделители - &quot;;&quot;. &nbsp;Плохо, что эксель не особо может выдавать utf-8 и csv в таком формате - что-то не всегда получается, он стремится сделать разделитлями запятые, а кодировка естественно cp1251. Виндовый юникод как-то разительно отличается от utf-8. Видимо, это ucs-4, хотя я могу легко ошибаться.</p>
<p>Пробовал использовать Spreadsheet::ParseExcel с CPAN, но оказалось что входные файлы бывают двух видов: которые парсятся им нормально (объектным методом, вытаскивая форматированный текст в utf8) и которые им нормально не парсятся (то есть надо вынимать текст напрямую и он в &quot;неправильной&quot; кодировке cp1251, а если попросить текст с форматированием идут пустые строки или вообще какой-то бред, не поддающийся раскодированию).</p>
<p>1. и 2. вообще говоря могут иметь разные ответы.</p><p>Заранее спасибо.</p>