hey, that helped tremendously. thanks alot and ill work more on cleaner more
readable code just as soon as i know what i'm doin
 <looks around to see who gave this chimp a keyboard>   =)

---Steve
----- Original Message -----
From: "Ondrej Par" <[EMAIL PROTECTED]>
To: "steve" <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]>;
<[EMAIL PROTECTED]>
Cc: <[EMAIL PROTECTED]>
Sent: Friday, June 15, 2001 12:01 PM
Subject: Re: arrays and formatting


> On Friday 15 June 2001 18:23, steve wrote:
> > hi,
> >
> > im trying to write a program that takes the daily topten from
> > showbizdata.com and formats it in an email. i have everything working
great
> > except the format part. i tried the format function but it doesnt seem
to
> > want to work in arrays and i am really bad at grabbing the stuff in
scalar
> > (as a matter of fact, out of 20 tries,  i have grabbed the topten or
even
> > anything at all in scalar context for a total of 0 times =(  ). so what
i
> > am trying to do is this:
> >
> > for (my $f=0; $f <= $#topten; $f++)
> > {
> > $rank[$f] = substr($topten[$f], 2, 3);
> > $title[$f] = substr($topten[$f], 7, 30);
> > $gross[$f] = substr($topten[$f], 50, 4);
> > $grosstodate[$f] = substr($topten[$f], 60, 8);
> > }
> >
> > # *************************************************
> > for (my $g = 0; $g <= $#topten; $g++)
> > {
> > $topten[$g] = ("$rank[$g]", "\t", "$title[$g]", "\t", "$gross[$g]",
> > "\t", "$grosstodate[$g]", "\n");
> > }
> > # ***************************************************
> > print"@topten\n";
> >
> >
> > the substr grabs all work pretty much ok, but when i try to put them
back
> > in topten (the lines between the comment lines) i get useless use of a
> > string in void context...i tried grouping the elements with only
> > double-quotes around the tab but it didnt work. any suggestions would be
> > appreciated. thanks
> > steve
> >
> > ---Steve
>
>
> You probably want to put a string into $topten[$g]; to do this, create a
> string with join() function:
>
> $topten[$g] =
> join("\t", $rank[$g], $title[$g], $gross[$g], $grosstodate[$g]) . "\n";
>
> otherwise you are storing a list into scalar variable and that does not
work
> (you could also replace commas with dots, but join() is far cleaner).
>
> Also, it's better to rewrite for() as
>
> foreach my $g (0..$#topten)
>
> ((the same applies to previous for()).
>
> Also, maybe it's a bit more flexible to store @topten lines without the
> newline, and then print them out with
>
> print map "$_\n", @topten;
>
> --
> Ondrej Par
> Internet Securities
> Software Engineer
> e-mail: [EMAIL PROTECTED]
> Phone: +420 2 222 543 45 ext. 112
>

Reply via email to