Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
PerlMonks  

Stripper.pl

by JSchmitz (Canon)
on May 02, 2001 at 05:35 UTC ( #77199=sourcecode: print w/replies, xml ) Need Help??
Category: fun stuff
Author/Contact Info jgschmitz@linuxmail.org -- Listen to SLAYER!!!!!!
Description: Rips out all the junk and leaves just working code just type stripper.pl "scriptname" tells ya when its done. = )

#!/usr/bin/perl -w

@files=@ARGV;
foreach $file (@files) {
print "Starting On $file\n";
open (INPUT,$file);
open (OUTPUT,">$file.out");
while (<INPUT>) {
chop ($line=$_);
if ($line=~/^\s*(\S.*)/) {
$line=$1;
}unless ($line=~/^\#!\//) {
if ($line=~/^\#/) {
next;
}}if ($line=~/(.*)=(.*)/) {
$line="$1=$2";
}if ($line =~ /(.*)=~(.*)/) {
$line="$1=~$2";
}if ($line=~/(.*;)\s*\# .*/) {
$line=$1;
}if ($line=~/(.*\{)\s*\# .*/) {
$line=$1;
}if ($line eq "") {
next;
}if ($line eq "}") {
print OUTPUT "$line";
}else {
print OUTPUT "$line\n";
}}close OUTPUT;
close INPUT;
}exit;

# yes SLAYER is evil johnny
Replies are listed 'Best First'.
Re: Stripper.pl
by Chmrr (Vicar) on May 02, 2001 at 06:09 UTC

    It looks like you're trying to parse Perl with Perl. This is generally a very scary idea. Please read merlyn's node on this topic for more information about why several of your regexes are broken. The most obvious error is attempting to treat every # as a comment. Things like s#foo;# bar#g will get royally messed up by your program. Ditto for anything with $#array.

    Though it's less of an issue here, you're also using .*, which is also a bad idea. Read "Death to Dot Star!" for more information about this heinous construct. It causes your (.*)=(.*) code to be useless. It causes your /(.*;)\s*\# .*/ regex to do the Wrong Thing on 1; #Whee!; # . It causes your hair to fall out. It causes your computer's hard drive to go farming and your Perl install to revert to version 0.1. Well, maybe not all that. But it's still not a good idea. ;>

     
    perl -e 'print "I love $^X$\"$]!$/"#$&V"+@( NO CARRIER'

      thanks I'll check it out
Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: sourcecode [id://77199]
help
Chatterbox?
[Corion]: marto: A rough week comes to an end?
Corion has to finish off some test tickets and hopefully close them. Also I have to prepare some information for the tax people on the weekend :-/
[marto]: it feels like 2 weeks :)
[Discipulus]: sane dots for your weekend marto!
[choroba]: My week was hectic as well, and so will be the next several ones...

How do I use this? | Other CB clients
Other Users?
Others meditating upon the Monastery: (8)
As of 2017-01-20 10:09 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Do you watch meteor showers?




    Results (174 votes). Check out past polls.