During development, I didn't want to stop and define a bunch of simple methods, so through the magic of AUTOLOAD, I just let them create themselves. But I ran across some interesting behavior. First, I didn't know you had to (or could) define AUTOLOAD as an lvalue sub. Second, I didn't know you had to fool the compiler into making it think AUTOLOAD was returning a valid lvalue.