Yikes. I see what everyone's saying about 3.6; that really is out of place. I see what they're trying to do, but the examples were so poor that the lesson is almost lost.
For one, I'm not sure that they mentioned anywhere how the scripts even call the functions -- there's supposed to be something like what I've got below so you can source the functions files, otherwise the script has no idea what you're talking about. I'll show what I mean below.
One other nitpick: the book makes a little typo -
printf "%b" "Overriding $THISPACKAGEwith ${CHOICE}n"
specifically $THISPACKAGEwith .. I'll mark it down in the code below.
Maybe I had this all wrong, but that's how I saw it.
Now, the "select" stuff, that was pretty awesome!