perl book