open$:,shift;$/=undef;$_=<$:>;><+-.,cd;s!(.)!$1 !g;s!((?:<\s) {2,})!'$b-='.(length($1)/2).";"!gex;s!((?:>\s) {2,})!'$b+='.(length($1)/2).";"!gex;s!((?:\+\s){2,})!'$a[$b]+='.(length($1)/2).";"!ge;s!((?:\-\s){2,})!'$a[$b]-='.(length($1)/2).";"!ge;s!>\s !\$b++;!gx;s!<\s !\$b--;!gx;s!([+-])\s!\$a[\$b]$1$1;\n!g;s!\.\s!print chr(\$a[\$b]);!g;s!,\s !\$a[\$b]=ord(substr(<>,0,1));!gx;s!\[\s!while(\$a[\$b]){!g;s!(?<=\s)\]\s!}!g;print;