in reply to Help with default record separator

To elaborate on what is causing your problem, the line  $/ = &; is trying to run the subroutine  ';' with the argument  'while' and assign its return value to  $/ and you don't have a semicolon at the end of that statement.    See perlsub on why you should not use the ampersand to call subroutines in Perl.