On Tue, Aug 21, 2007 at 12:47:22AM +1000, Ken Foskey wrote:
> I have a piece of code that I am assured works and I cannot see why it
> would. Code is supposed to force undefined, zero and all space to
> numeric zero to stop printf being undefined.
>
> foreach my $value (@array) {
> if( ! $value or $value = " " ) {
> $value = 0;
> }
> }
>
> Will this actually work, or as I suspect do nothing because $value is a
> copy.
What happened when you tried it?
I suspect that it set all the values in @array to zero because you used =
instead of eq in your comparison.
> The root cause of the problem is that the array is read from a file with
> a simple substr
>
> $array[0] = substr( $_, 256, 6 );
>
> Despite documented standards some values are simply filled with blanks.
>
> Then rebuilt with a printf "%06d", $array[0]; and this causes a non
> numeric warning.
>
> Is there a 'better' way to do this.
Turn off the warning?
--
Paul Johnson - [EMAIL PROTECTED]
http://www.pjcj.net
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/