#!/usr/local/bin/perl -w while(){chomp,m/^(\d+)\s+(.*)/,$p[$1]=$2} {redo if ($p[++$pc] eq undef); if($p[$pc]=~ /^(?:\s)*FOR\s+(\w+)(?:\s)*=(?:\s)*(\d+)(?:\s)*TO(?:\s)*(\d+)/x ){$var{$1}=[$pc,$2,$3];}elsif($p[$pc]=~/^(?:\s)*PRINT\s+'(.*)'/x ){print "$1\n";}elsif($p[$pc]=~/^(?:\s)*NEXT\s+(\w+)/x){die "variable $1 not defined!" if !$var{$1};$var{$1}->[1]++;$pc=$var {$1}->[0] if $var{$1}->[1]<=$var{$1}->[2];}elsif($p[$pc]=~ /^(?:\s)*END/x){exit}redo} __DATA__ 10 REM ****** BASIC PROGRAM ******* 20 30 FOR I = 1 TO 5 40 FOR J = 1 TO 5 50 PRINT 'I LOVE GW-BASIC!' 60 NEXT J 70 NEXT I 80 90 END