Beefy Boxes and Bandwidth Generously Provided by pair Networks
Come for the quick hacks, stay for the epiphanies.
 
PerlMonks  

Chat Client Paste Parser

by dusk (Friar)
on Aug 29, 2001 at 09:46 UTC ( #108695=CUFP: print w/replies, xml ) Need Help??

Hello monks,

Well, it's been a while since I've been active here; I have been helping other with coding, on such places as OpenNAP, and of course, IRC. -- When others paste code, it's always a good idea to parse the code, and exclude their nick, or other appended information; So I wrote an all purpose chat client paste parser.


#!/usr/bin/perl -w # Chat client paste parser # Author: dusk use strict; die "Usage: $0 [input file] [output file] [nick] [0:1]\n" unless $ARGV +[3]; warn "Remember: 0 and 1 denote timestamped, or not -- respectively\n"; my $nick = $ARGV[2]; open (INPUT, "$ARGV[0]"); foreach (<INPUT>) { open (OUTPUT, ">>$ARGV[1]"); if ($ARGV[3] == 0) { print OUTPUT "$1\n" if /^\W$nick\W\s(.*)/ } else { print OUTPUT "$1\n" if /^\W\d.*\W\s\W$nick\W\s(.*)/ } } close OUTPUT; close INPUT;


Edit ar0n -- fixed whitespace

Replies are listed 'Best First'.
Re: Chat Client Paste Parser
by Hofmator (Curate) on Aug 29, 2001 at 13:53 UTC

    Some quick comments:

    • Your open statements should check if they succeed, something like this works: open (INPUT, $ARGV[0]) or die "Couldn't open $ARGV[0]: $!";
    • Don't use a foreach loop here, this reads the whole input file into memory. You want to process the file line by line so just use while (my $line = <INPUT>)
    • Take the open OUTPUT out of the loop. At the moment you are opening and closing the output file for every line you are processing, very inefficient. This is so, because open implicitly closes the file before it opens it again.

    -- Hofmator

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: CUFP [id://108695]
Approved by root
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others pondering the Monastery: (4)
As of 2023-12-01 19:59 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    What's your preferred 'use VERSION' for new CPAN modules in 2023?











    Results (5 votes). Check out past polls.

    Notices?