open DATA, "/usr/bin/cvs @ARGV |" or die "Couldn't execute program: $!
+";
I personally believe that even if probably it doesn't do any harm here, you should avoid naming your filheandle DATA since it's a predefined perl one. Of course, had you used a lexical instead, there would have been no problem a priori.
while ( defined( my $line = <DATA> ) ) {
As a side note: perhaps you know (and perhaps you don't know) that defined is pleonastic there since perl will dwimmily assume it implicitly for you.
chomp($line);
print "$line\n";
}
close DATA;
Sorry, but I'm very tired and I may be missing something obvious. Anyway: why are you doing this? Line ending conversion? Since it's the very last part of your script, you may even be thinking -for once- of using exec instead, couldn't you?
| [reply] [d/l] [select] |
Originally I had did not have the open() there and had the last line as:
print `/usr/bin/cvs @ARGV`;
But this failed when there were double quotes in the @ARGV. For example if @ARGV contained: commit -m "message goes here" filename_to_commit
So I used open() instead.
| [reply] [d/l] |
open my $data, '-|', '/usr/bin/cvs' => @ARGV or die horribly;
| [reply] [d/l] [select] |