#!/usr/bin/perl $cd .= $_ while (); sub get_char { exit if ($ch_ptr == length($cd)); return substr($cd, $ch_ptr++, 1); } while (1) { $ch = get_char; $cell[$cl_ptr]++ if ($ch eq '+'); $cell[$cl_ptr]-- if ($ch eq '-'); (($_ = chr($cell[$cl_ptr])) && print) if ($ch eq '.'); $cl_ptr++ if ($ch eq '>'); $cl_ptr-- if ($ch eq '<'); if ($ch eq ',') { $inp_ch = getc(STDIN); $cell[$cl_ptr] = ord($inp_ch); } elsif ($ch eq '[') { ($ch_ptr = index($cd, ']', $ch_ptr)) if ($cell[$cl_ptr] == 0); } elsif ($ch eq ']') { ($ch_ptr = rindex($cd, '[', $ch_ptr)) if ($cell[$cl_ptr] != 0); } }