----- Original Message ----- 
From: "Harry Putnam" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Tuesday, June 17, 2003 1:35 AM
Subject: Re: Capture a printing function into an array


> Mark G <[EMAIL PROTECTED]> writes:
>
> > I am a newbie as well but this line makes no sence to me why do you have
> > ($line = $line) ???
> >>       ($line  = $line)  =~ s/[Dd]estination/Dst/g;
>
> It began life as:
>        $line  =~ s/[Dd]estination/Dst/g;
> Which is sufficient, but in the course of doggedly changing around
> all kinds of stuff as errors occured, it ended up in that unecessary
> condition.  This is not a finished product.

 I hear that.


> > Here you dont need to quote your variables
> > printf " %s %s %-28s %s\n", <$.>, $2, $4, $6;
> >
> > BTW why are you doing <$.> ??
>
> Is there something wrong with printing the line number?

Nothing @all. you dont need to do <$.>, $. is fine by it self so can scrap
that to
 printf " %s %s %-28s %s\n", $., $2, $4, $6;


> >>  if ($opt_l){
> >>       @c = sprintf(my_func());
> > sprintf will return a scalar, if you want an array you need to split
> >  @c = split "",sprintf(my_func());
>
> Good to know (about the scalar/array)but it does nothing for the
> stated problem.  That is, capturing the output rather than printing to
> stdout.  Your split doesn't do it either.
Ahh my fault, its getting a bit late must have misread something. printf
will default to STDOUT, you can change that by specifieng a filehnadle as
first argument to printf or usign the 2 arg verssion of select. In either
case that wont help { or atleast will make it a mess } your problem. I think
the simplest thing to do is to replace your printf with sprintf in your
function, like this:

sub my_func{
...
return sprintf " %s %s %-28s %s\n", $., $2, $4, $6;
}

and then you can assign to array:

@c = split "", my_func();

hTh,
Mark G

>
>
> -- 
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>



-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to