in reply to %INC and eval use

Nothing wrong there really. Although you could always just avoid eval STRING and use a require instead e.g
require Spreadsheet::WriteExcel && Spreadsheet::WriteExcel->import unless exists $INC{'Spreadsheet/WriteExcel.pm'};
HTH

_________
broquaint