Here is some code I am working on:

#!/bin/perl -w
use strict;

my $number_of_args = @ARGV; 

open STDERR, ">./caught_errors" or die "Can't create
caught_errors: $!";

if ($number_of_args == 0) {
    print "Not enough arguments!\n";
    print "Usage: ./cedit somefile.C++\n";
    print "Usage (optional): ./cedit somefile.C++
outputfile\n";
} elsif ($number_of_args == 1) {
    system "g++", $ARGV[0];
    open CAUGHTERRORS, "caught_errors" or die "Can't
open file: $!";
    chomp(my $line = <CAUGHTERRORS>);
    until (my $line =~ /^\s*$/) {
       chomp($line = <CAUGHTERRORS>);
       print $line."\n";
    }       
    close CAUGHTERRORS;    
} elsif ($number_of_args == 2) {
    system "g++", $ARGV[0], "-o", $ARGV[1];
} else {
    print "Too many arguments!\n";
    print "Usage: ./cedit somefile.C++\n";
    print "Usage (optional): ./cedit somefile.C++
outputfile\n";
}

Basically, I am trying automate g++.  However, I don't
want any error messages printed to the screen.  I want
them saved in a text file called caught_errors.  That
part works.  After g++ does its business, I want the
script to open the text file and print out any
messages that it sees in there.  This is the part I am
having trouble with!  This is frustrating because I
know I have done something like this before!  Right
now, in caught_errors, I am getting the following
error messages:

hello.c++: In function `int main()':
hello.c++:7: error: syntax error before `return'
Use of uninitialized value in pattern match (m//) at
/home/Christstopher Spears/C++_code/tools/cedit line
16, <CAUGHTERRORS> line 1.

The first two are obviously from the C++ program I
wrote incorrectly to test the script.  I don't
understand the third error message.  Any hints?


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to