Wouldn't it be easier to just write: goto &stateReadLit; ? There appears to be a sub by the name stateReadLit, so if he wants to jump there, why not just goto and then insert the sub name? But there's also an equal sign in this line and an arrow -> and a bareword "state". I don't even know why this is legal. Nowhere in the script is "state" defined or declared. I mean if it was a scalar variable, I would expect that there would be a my $state = 0; somewhere, but no. The word "state" is just a word that pops up all of a sudden, and I don't know why Perl recognizes a random word that's not a keyword. I mean I looked in Perl functions list, and "state" is not a builtin Perl function.