in reply to Using constants as methods

Personally, I would assume that although today you're thinking it's a global constant, someone might want to be able to change the timeout on a per-object basis someday. So, even though constant basically works by creating an inlinable subs, I would suggest that you write it the first way, and document it. The reason being that that way, it would be more clear to a future maintainer (including yourself) that the option exists to override the method in subclasses, or turn it into a getter/setter later. (On the other hand, the distinction between the two is only small - constant even mentions "Subclasses may define their own constants to override those in their base class." - so it's also a matter of taste.)