B. Fongo <[EMAIL PROTECTED]> wrote:
: 
: What may be wrong with my code?  Perl complains of
: use of uninitialized value at addition and in range
: (or flop).

: #########################################
: 
: #!/usr/bin/perl -w
: use strict;
: 
: my ($xi, $i, @numbers, @slice);
: @numbers = (1..10);

    This array has 10 items in it. @number[ 0 .. 9 ]

: $i = 0;
: $xi = 0;
: 
: open(RS, ">perd.dat") || die "Could not open file. $!\n";
: for (my $z = 0; $z <= $#numbers; $z++){
:               
:               
:               foreach  (@numbers){

    Comment the next two lines out and add:

    printf
        "%3s: [EMAIL PROTECTED] = [EMAIL PROTECTED] \$number[ %s ]," .
        "\$number[ %2s ] .. \$number[ %2s ] + 4 ]\n",
        ++$iter, $xi, $i, $i, $#numbers;

:                       @slice = @numbers[$xi,  $numbers[$i] ..
:                                                       $numbers[$i]+4];
:                       print RS "@slice\n";
:                   $i++;
:               }
:               
:               $xi++;
:               
: }
:               
:   close(RS);

    This is some of what I got. Notice that by
the seventh iteration you are using indexes
for @numbers that have no value. $number[6]
when incremented by 4 gives an index of 10.


  1: @slice = @numbers[ $number[ 0 ],$number[  0 ] .. $number[  0 ] + 4 ]
  2: @slice = @numbers[ $number[ 0 ],$number[  1 ] .. $number[  1 ] + 4 ]
  3: @slice = @numbers[ $number[ 0 ],$number[  2 ] .. $number[  2 ] + 4 ]
  4: @slice = @numbers[ $number[ 0 ],$number[  3 ] .. $number[  3 ] + 4 ]
  5: @slice = @numbers[ $number[ 0 ],$number[  4 ] .. $number[  4 ] + 4 ]
  6: @slice = @numbers[ $number[ 0 ],$number[  5 ] .. $number[  5 ] + 4 ]
  7: @slice = @numbers[ $number[ 0 ],$number[  6 ] .. $number[  6 ] + 4 ]
<--
  8: @slice = @numbers[ $number[ 0 ],$number[  7 ] .. $number[  7 ] + 4 ]
<--
  9: @slice = @numbers[ $number[ 0 ],$number[  8 ] .. $number[  8 ] + 4 ]
<--
 10: @slice = @numbers[ $number[ 0 ],$number[  9 ] .. $number[  9 ] + 4 ]
<--
 11: @slice = @numbers[ $number[ 1 ],$number[ 10 ] .. $number[ 10 ] + 4 ]
<--
 12: @slice = @numbers[ $number[ 1 ],$number[ 11 ] .. $number[ 11 ] + 4 ]
<--
    [arrows added]


HTH,

Charles K. Clarkson
-- 
Head Bottle Washer,
Clarkson Energy Homes, Inc.
Mobile Home Specialists
254 968-8328
















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

Reply via email to