So, I was just poking around with the Perl interpreter , manually satisfying my curiosity about how Perl handles the DATA and END filehandles and their respective (Markers? Constants?) if called from the shell.

I noticed that, __DATA__ is interesting, because it's handled line by line, as you type. So, by combining that with some stupidly insecure and terrible eval magic, I now present the simplest, stupidest REPL ever made by mortal hands.

First, type "perl <enter>" into the shell.

while (<DATA>){ if ($_ eq "!\n"){ eval $string;$string = '';print "\n";} else { $string .= $_; } } __DATA__ #REPL behavior starts here!

I don't imagine this has any use other than exhibiting my madness to the world, but I found it an interesting misuse of the language.

This particular code maintains local variables through code chunks, but not across differing evals; my original code went statement by statement. I can't figure out how to golf this down while maintaining the ability to handle code blocks that go across multiple lines, nor have I thus far figured out how to maintain local variables across the evals.

for(split(" ","tsuJ rehtonA lreP rekcaH")){print reverse . " "}print "\b.\n";

In reply to Simple REPL madness. by pobocks

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.