in reply to what is sub {1;}

Actually, the semicolon could be omitted: sub {1} would do equally well. Note that sub followed by an open brace constructs a reference to an unnamed subroutine, and that the last expression (in this case: the only one) in a subroutine is the value returned from the subroutine. An alternative way to write this would be
sub {return 1;}
-- 
Ronald Fischer <ynnor@mm.st>