in reply to Strange syntax question
// isn't a comment in Perl. It's the defined-or operator. It's an infix operator, so it comes between two operands. If the left operand evaluates to a defined value, the operator produces the left operand's value. If the left operand evaluates to an undefined value, the operator produces the right operand's value.
In other words, shift off the first parameter to the function and assign its value to $it. If that's not a defined value, assign the value of $foo to $it instead.