$ xxd -c 8 5.in
0000000: 2323 2341 2323 230a ###A###.
0000008: 2343 2342 236f 230a #C#B#o#.
0000010: 2364 2323 2365 230a #d###e#.
0000018: 2023 2067 6f23 0a20 # go#.
0000020: 2023 2323 0a ###.
$ cat s.pl
#!/usr/bin/perl -p0
/^#[^#\0]/m&&s/^|[^#\n\0]\0/\0\0/mg,s%.%s/.(.*)/$+\0/g;/#/&&reverse"\n",/^./mg%seg while$a++%4<$$_++;y/\0/#/;s/^#*\n|#+$|^#//mg;y;#;
$ ./s.pl < 5.in
A
C B o
d e
go
$ /usr/bin/perl --version
This is perl 5, version 18, subversion 2 (v5.18.2) built for darwin-thread-multi-2level