2016-02-21 2 views
0

Я заметил, что модуль Spreadsheet :: XLSX ведет себя непоследовательно в зависимости от того, как он был установлен. При установке на OpenSUSE через/USR/BIN/CPAN, то прочитать дату из ячейки в 2007 листе Excel, как:Непоследовательное поведение модуля CPAN - кого винить?

$VAR1 = bless({ 
    'Format' => 'yyyy-mm-dd', 
    'Val' => '2016-01-04', 
    '_Value' => '2016-01-04', 
    'Type' => 'Date' 
}, 'Spreadsheet::ParseExcel::Cell') 

который был правильным. Однако на компьютере, где он был установлен, как RPM из хранилища OpenSuSE, тот же код читает ту же ячейку того же листа вернулся:

$VAR1 = bless({ 
    'Type' => 'Date', 
    'Format' => 'm-d-yy', 
    'Val' => '42373', 
    '_Value' => '1-4-16' 
}, 'Spreadsheet::ParseExcel::Cell' ); 

Для меня это выглядит, как если код компилируется на моей машине включены разные по умолчанию или, по крайней мере, считывает лист по-другому, чем компилируется поставщиком-распространителем.

Это похоже на ошибку оригинального автора, который написали код, который зависит от среды времени компиляции, диспетчера распространения, который скомпилировал непереносимый код, или тех, кто решил включить компиляционный временной код, зависящий от условий в репозитории как RPM?

Я не хочу никого обвинять, просто хочу знать, где я должен представить отчет об ошибке.

+3

Сделайте больше исследований, чтобы определить основную причину. – toolic

ответ

9

Об «вине». ;) Сначала прочитайте лицензию на модуль. А также прочитайте GPL для Linux.

Вы найдете что-то вроде: ЭТОТ ПАКЕТ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ» И БЕЗ КАКИХ-ЛИБО ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ ГАРАНТИЙ, ВКЛЮЧАЯ, БЕЗ ОГРАНИЧЕНИЙ, ПОДРАЗУМЕВАЕМЫЕ ГАРАНТИИ ТОВАРНОЙ ПРИГОДНОСТИ И СООТВЕТСТВИЯ ОПРЕДЕЛЕННОЙ ЦЕЛИ.

Об отчетах об ошибках: Конечно, сообщения об ошибках приветствуются.

О проблеме:

  • Проверьте changelog к модулю.
  • вы найдете:

0,14

  • изменения по умолчанию формат даты гггг-мм-дд. Это соответствует Spreadsheet :: ParseExcel.

Таким образом, возможно, не BUG - но документальное изменение.

Проверьте версии модулей для обоих (aka, установленных из cpan и RPM).

+0

Я бы скорее назвал это «документированным исправлением ошибок». Но в целом, ты прав. Версия rpm устарела. – Jasio

0

[стыдно] Похоже, что единственная сторона вины - это я [позор].

Я не заметил и даже не проверял, что модуль, распространяемый как RPM, устарел. Так как ошибка была исправлена ​​тем временем, новейший модуль, установленный из CPAN, работал правильно.

Смежные вопросы