On Tue, 25 Feb 2003, cc wrote:
> Hi,
>
> I'm a beginner at PERL. I've used it on and off, but only
> just recently got myself back into the picture. I figured
> that if you forget something in PERL, it'd be easy to take
> it up again. So far, I'm not too sure of the ease
> of taking up PERL again. Before, I made a few perl scripts.
> Now, when I look back, I find the whole thing overwhelming.
> Even with comments...Anyway, I digress..
You might want to read through these docs too
perldoc perllol
perldoc perldsc
perldoc perlreftut
perldoc perlref
>
> I have a text file with each line of the following format:
>
> string1 string2 val1 val2 val3
>
> I'm trying to read it into an array of arrays so I can
> stick it in the creategraph() function to create a line
> graph.
>
> So far, if I specifically create an array constant:
>
> ie.
>
> my(@data) = ( ["test 1",0.34,0.56,0.33],
> ["test 2",0.44,0.55,0.22],
> ["final test",0.67,0.22,0.54])
>
> my($grp) = new GD::Graph::linespoints();
>
> and then put that in the $grp->plot([EMAIL PROTECTED]) function, I get
> a graph.
>
> But, if I use the following code:
I guess you have enabled the strict and warnings pragmas, if not enable
them.
perldoc perltrap
>
> while (<MYFILE>){
> chomp($_);
You don't have to chomp here, the split in the next line will take care of
removing the newline too
perldoc -f split
> @info = split(" ",$_);
better written as
my @info = split;
> my($strngval) = "\"$info[0] $info[1]\"";
> $strval = "$strval,$strngval";
> $m1vals = "$m1vals,$info[2]";
> $m2vals = "$m2vals,$info[3]";
> }
>
> my (@sv) = split(",",$strval);
> my(@m1) = split(",",$m1vals);
> my(@m2) = split(",",$m2vals);
>
> my(@data) = (@sv,@m1,@m2);
>
> Are @sv, @m1 and @m2 all arrays? So, would @data be an
> array of arrays? Or are the @sv, @m1 and @m2 arrays
> flattened out, making @data just an array?
Yes, @data is just an array not an array of arrays.
Does this do what you want?
# CODE START #
my @data;
while (<MYFILE>) {
my @info = split;
push (@data, ["$info[0] $info[1]", @info[2..$#info]]);
}
# CODE END #
You might also want to take a look at the Data::Dumper module to make sure
your array of arrays is formed correctly.
perldoc Data::Dumper
>
> The thing is, with the fixed way of doing the graph,
> and when I print out @data, I get
>
> ARRAY(....) ARRAY(....) ARRAY(...)
>
> But with the 'dynamic' way, I just get
> ARRAY(...)
>
> where (....) are memory locations in Hex, I believe.
>
> Can someone point out what I'm doing wrong?
>
> Thanks
>
> E
hth,
Sudarshan
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]