5 of 13 no longer relevant; deleted 29 characters in body

Perl 5, 50 bytes

47 bytes plus three for the flags: perl -lnF script.pl

/#+/;{unshift@F,pop@F;++$i<"$`$'"&&redo}print@F

Explanation:

  • -lnF reads the input, removes the trailing newline, splits up the remainder into characters, and puts that split into the array @F.
  • $"='' makes sure that when we stringify an array it has no spaces in it.
  • /#+/ finds #s in the input string and sets $` equal to the stuff before it and $' equal to the stuff after it. $'$` is thus the number of times to rotate the array.
  • Now comes a loop: We increment $i (which starts at 0) and test against $'$` (the number of times to rotate); if we haven't reached $'$` yet, we redo the loop. What does the loop do? Simple: it rotates the array (pops the last element and unshifts it onto the beginning).
  • After the loop exits, we print all the elements of the rotated array.