Well, I'm kinda new at this stuff myself, but Here's a couple of
things I see right away:
On Sat, 11 Sep 2004 10:27:44 +0800, Edward WIJAYA
<[EMAIL PROTECTED]> wrote:
> Hi,
<<SNIP>>
> #!/usr/bin/perl -w
--You don't really need to use the -w flag here AND the 'use
warnings' in your subroutine
down below.
> use strict;
-- Nice Job!!
> use Data::Dumper;
>
> if(scalar @ARGV ne 1)
> {
> print "Usage: $0 file1 file2 [file3] etc\n";
> exit(1);
> }
> #the above part doesn't seem to be working well/useful
>
--Try this:
unless( @ARGV >= 2 ) { die "Usage: $0 file1 file2 [file3...]\n"; }
> my $file1 = $ARGV[0];
--This is easier and prettier with this:
my $file1 = shift;
> my @set1 = get_file_data("$file1");
>
> #Remove the whitspace and \n from each lines
> @set1 = grep { s/^\s+//; s/\s+$//; s/\s+/ /g; length } @set1;
--You can get all the "\n"'s out at once with a chomp:
chomp @set1;
However, the whole get_file_data thing and chomping can all be
done like this:
open INFILE, $filename or die "Couldn't open $filename: $!\n";
chomp( my @filedata = <INFILE> );
Then, to clear out the whitespace from each line:
foreach( @filedata ) {
s/\s+//g;
}
> my $s1 = [EMAIL PROTECTED];
>
> my $file2 = $ARGV[1];
> my @set2 = get_file_data("$file2");
> @set2 = grep { s/^\s+//; s/\s+$//; s/\s+/ /g; length } @set2;
> my $s2 = [EMAIL PROTECTED];
>
> my $file3 = $ARGV[2];
> my @set3 = get_file_data("$file3");
> @set3 = grep { s/^\s+//; s/\s+$//; s/\s+/ /g; length } @set3;
> my $s3 = [EMAIL PROTECTED];
>
> #Printout the appended lines from the data
> print map { join("",$set1[$_],$set2[$_],$set3[$_]), "\n" } (0..$#set1);
>
> #Subroutine
> sub get_file_data {
>
> my ($filename) = @_;
>
> use strict;
> use warnings;
>
> # Initialize variables
> my @filedata = ();
>
> unless ( open( GET_FILE_DATA, $filename ) ) {
> print STDERR "Cannot open file \"$filename\"\n\n";
> exit;
> }
>
> @filedata = <GET_FILE_DATA>;
> close GET_FILE_DATA;
> return (@filedata);
> }
>
<<SNIP>>
Not much, I know, but I'm sure some of the others on the list will
help out more. I'll work on this some more and post what I figure out
later.
--Errin
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>