Имеет смысл как-то сохранять отдельно список числовых id, которые есть в конце имени оригинального файла.
Позднее можно запилить его в userscript и с его помощью избежать повторных покупок одних и тех же позиций в будущем
(потому что сам books.ru никак не даст знать, что «это вы уже купили на весенней распродаже»).
Таже самая проблема, что и с IO:File. Когда я делал бота для выигрыша гага сделок на алиэкспрессе наблюдал презанятный баг с пустым decoded_content и вполне валидным content. К сожалению, как обычно, надо было сделать чтоб заработало, стабильно и быстро, а потому тогда и была написана mkGunz, а исследование бага оставлено до лучших времен, которые так и не наступили…
Рад, что мое поделие пошло в массы. И тем более рад, что оно кому-то не нравится, и этот кто-то делает что-то свое. Это и есть прогресс.
Да здравствует open source!
Удобное скачивание с сайта Books.ru или пристраиваем к делу WWW::Mechanize