#!/afs/athena/contrib/perl/p

require '/mit/mkgray/perl/line_edit.pl';

while(1){
    $foo = &line_edit'get("perl> ");
    $foo .= ' ';
    $cmd = substr($foo, 0, index($foo, ' '));
    if($cmd=~/^(\d+)$/){
	&perl_line($1, substr($foo, index($foo, ' ')+1));
    }
    elsif($cmd eq 'ls'){
	$local_line=0;
	for (@perl_memory){
	    print "$local_line $_\n" if $_;
	    $local_line++;
	}
    }
    elsif($cmd eq 'run'){
	&run;
    }
}

sub perl_line {
    local($n, $line) = @_;
    $nmax = ($n > $nmax) ? $n:$nmax;

    $perl_memory[$n] = $line;
}

sub run {

    local($code) = join("\n", @perl_memory);
    eval($code);

}
