This is the revision history for spellbook in <freenode.net:#perlbot>

factoid_idsubjectcopulapredicateauthornamespace
8869 spellbook is [eval use List::Util qw"min max";if(($l,$i)=[arg d]=~/^\s*(\d+)\s+(\d+)\s*$/){"In nethack, with XL:$l, Int:$i, no lenses, chance for successfully reading uncursed spellbook depending on book level is: ".join(", ",map{"$_:".max(0,min(100,($i+4+int($l/2)-2*$_)*5))."%"}1..7)."."}else{"Usage: spellbook XL Int"}]
Not Available
b_jonas <*:##NULL>
8790 spellbook is [eval use List::Util qw"min max";if(($l,$i)=[arg d]=~/^\s*(\d+)\s+(\d+)\s*$/){"With XL:$l, Int:$i, no lenses, chance for successfully reading uncursed spellbook depending on book level is: ".join(", ",map{"$_:".max(0,min(100,($i+4+int($l/2)-2*$_)*5))."%"}1..7)."."}else{"Usage: spellbook XL Int"}]
Not Available
b_jonas <*:##NULL>
8789 spellbook is [eval if(($l,$i)=[arg d]=~/^\s*(\d+)\s+(\d+)\s*$/){"With XL:$l, Int:$i, no lenses, chance for successfully reading uncursed spellbook depending on book level is: ".join(", ",map{"$_:".max(0,min(100,($i+4+int($l/2)-2*$_)*5))."%"}1..7)."."}else{"Usage: spellbook XL Int"}]
Not Available
b_jonas <*:##NULL>
8788 spellbook is [eval if(($l,$i)=[arg d]=~/^\s*(\d+)\s+(\d+)\s*$/){"Usage: spellbook XL Int"}else{"With XL:$l, Int:$i, no lenses, chance for successfully reading uncursed spellbook depending on book level is: ".join(", ",map{"$_:".max(0,min(100,($i+4+int($l/2)-2*$_)*5))."%"}1..7)."."}]
Not Available
b_jonas <*:##NULL>
8787 spellbook is [eval if(($l,$i,$b)=[arg d]=~/^\s*(\d+)\s+(\d+)\s*$/){"Usage: spellbook XL Int"}else{"With XL:$l, Int:$i, no lenses, chance for successfully reading uncursed spellbook depending on book level is: ".join(", ",map{"$_:".max(0,min(100,($i+4+int($l/2)-2*$_)*5))."%"}1..7)."."}]
Not Available
b_jonas <*:##NULL>