keys $blessed doesn't work for a very good reason. keys can (in recent versions of Perl) be used with either arrays or hashes. A blessed object can (thanks to overload) be simultaneously dereferencable as a hash and and array. So for blessed objects, you need to manually dereference.
perl -E'sub Monkey::do{say$_,for@_,do{($monkey=[caller(0)]->[3])=~s{::}{ }and$monkey}}"Monkey say"->Monkey::do'
| [reply] [d/l] [select] |
To the best of my knowledge, //, say and state work as designed, and the design is sound. (The first two are my favorite features from 5.010).
Also it makes you appreciate how hard programming language design is.
| [reply] [d/l] |
Sure, those work fine, but aren't really new work, just syntactic sugar over $x = defined($x) ? $x : $value, a local $\ = "\n" (and print), and a function closed over a variable declared in an outer lexical scope (this is actually superior to the sugar, since you can have multiple functions sharing the same variable).
| [reply] [d/l] [select] |