sub given($&) { ($_,$code) = @_; { local $match = 0; $code->(); } } sub when($&) { my ($test,$code) = @_; if(/$test/) { $code->() ; $match=1; } } sub default(&) { my ($code) = @_; $code->() unless($match): }