title: Why do I get syntax errors with Perl Here-Document?
body: <p>I seem to be having a hard time getting my here-document to work properly.  I have a chunk of text that I need stuffed into a variable and remain un-interpolated.</p>
  
  <p>Here's what I have:</p>
  
  <pre><code>my $move_func &lt;&lt;'FUNC';
  function safemove
  {
      if [[ ! -f $1 ]] ; then echo "Source File Not Found: $1"; return 1; fi
      if [[ ! -r $1 ]] ; then echo "Cannot Read Source File: $1"; return 2; fi
      if [[ -f $2 ]]   ; then echo "Destination File Already Exists: $1 -&gt; $2"; return 3; fi
      mv $1 $2
  }
  FUNC
  
  # Do stuff with $move_func
  </code></pre>
  
  <p>Which gives me</p>
  
  <pre><code>Scalar found where operator expected at ./heredoc.pl line 9, near "$1 $2"
          (Missing operator before $2?)
  Semicolon seems to be missing at ./heredoc.pl line 10.
  syntax error at ./heredoc.pl line 6, near "if"
  syntax error at ./heredoc.pl line 10, near "$1 $2
  "
  Execution of ./heredoc.pl aborted due to compilation errors.
  </code></pre>
  
  <hr>
  
  <p>However, the following works as expected:</p>
  
  <pre><code>print &lt;&lt;'FUNC';
  function safemove
  {
      if [[ ! -f $1 ]] ; then echo "Source File Not Found: $1"; return 1; fi
      if [[ ! -r $1 ]] ; then echo "Cannot Read Source File: $1"; return 2; fi
      if [[ -f $2 ]]   ; then echo "Destination File Already Exists: $1 -&gt; $2"; return 3; fi
      mv $1 $2
  }
  FUNC
  </code></pre>
  
  <p>What am I doing wrong?</p>