dcsimg
Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX

By submitting your information, you agree that devx.com may send you DevX offers via email, phone and text message, as well as email offers about other products and services that DevX believes may be of interest to you. DevX will process your information in accordance with the Quinstreet Privacy Policy.


Tip of the Day
Language: Perl
Expertise: Beginner
Sep 11, 2003

WEBINAR:

On-Demand

Building the Right Environment to Support AI, Machine Learning and Deep Learning


A Quick-and-dirty Script for "Direct Mode" in Perl

Ever get annoyed that there's no "direct mode" environment in Perl? Instead, you have to save your code to a file and then execute it everytime. To offset this, I wrote this small program allows me to type and execute Perl code, complete statement by statement.

Here's how to use it. Save the code to a file named 'direct.pl', and start it. When the ">" prompt shows, type (or copy & paste from notepad) your code. When you press enter, it will execute it, show the result, and wait for next line. This script is quick-and-dirty—meaning it's not perfect and may not work every time but hey, that's not the point. It will try to count and show the number of open brackets/braces/parenthesis for you, and will execute the statement only when you close them.


my $count = 0;
my $statement = "";
print "\n> ";
while (<>) {
  chomp;
  s/([^\$\\])\#.*$/$1/;
  while (/{|\(|\[/g) {$count++};
  while (/}|\)|\]/g) {$count--};
  $statement .= $_;
  if (!$count) {
    $_ = eval $statement;
    print "\n[$_]\n";
    if ($@) {print "Error: $@\n"};
    $statement = " ";
    print "> ";
  }
  else {
    print "$count> ";
  }
}
Atanas Banov
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date