Opps, I missed that. Instead of:
@results = map { my $line = $_; chomp $line; $line =~ s/\s+//g; $line } (@data);
try:
my @newresults = map { my $line = $_; chomp $line; $line =~ s/\s+//g;
shift (@results) . $line } (@data);
@results = @newresults;
-David
On Fri, 10 Sep 2004 13:40:04 -0500, Errin Larsen <[EMAIL PROTECTED]> wrote:
> On Sat, 11 Sep 2004 02:20:32 +0800, Bee <[EMAIL PROTECTED]> wrote:
> >
> >
> > > >foreach( @ARGV ) {
> > > > open IN, $_ or die "Couldn't open $_: $!\n";
> > > > chomp( my @data = <IN> );
> > > > close IN;
> > > > foreach( @data ) { s/\s+//g; }
> > > > foreach( 0..$#data ) { $results[$_] .= $data[$_]; }
> > > >}
> > > This is a little shorter and saves on iterations:
> > > for my $file (@ARGV) {
> > > open IN, $file or die "Couldn't open $file: $!\n";
> > > @results = map { my $line = $_; chomp $line; $line =~ s/\s+//g;
> >
> > @results seems would be re-assigned when the next file comes...
> >
> > Besides, I guess chomp is not nesessary here.. \s+ means [\t\r\n\f]+,
> > so \r, \n or \r\n would seem to be cleared by the s expression.
> >
> > > $line } (<IN>);
> > > close IN;
> > > }
> > >
> >
> > I would suggest to write in this way :
> > my @res = ();
> > foreach( @ARGV ) {
> > open IN, $_ or die "Couldn't open $_: $!\n";
> > my @data = <IN>;
> > close IN;
> >
> > s/\s+//g for @data;
> > @res = ( @res, @data );
> > }
> >
> > Code not been tested, but the concept is something like this.
> > HTH
> >
> >
>
> Ok ... Thanks for helpin' out, HTH! I tried out your suggestions and
> now the code looks like this:
>
> #!/usr/bin/perl
> use warnings;
> use strict;
>
> unless( @ARGV >= 2 ) { die "Usage: $0 file1 file2 [file3...]\n"; }
>
> my @results = ();
> foreach my $file ( @ARGV ) {
> open IN, $file or die "Couldn't open $file: $!\n";
> my @data = <IN>;
> close IN;
> s/\s+//g foreach( @data );
> @results = ( @results, @data );
> }
>
> foreach( @results ) { print "$_\n"; }
>
> But now the output is as follows. We want the output to look like this:
> OneFirst
> TwoSecond
> ThreeThird
> But instead, it's coming out like this:
> One
> Two
> Three
> First
> Second
> Third
> Given the two test input files:
> file1: file2:
> One First
> Two Second
> Three Third
>
> --Errin
>
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>