Hello,
How about this?
my @test = qw(10 20 30 40 50);
splice @test, 1, 3, $test[1]+$test[2]+$test[3];
print "@test";
Thanks,
--Emen
On Thu, Jun 19, 2008 at 4:05 PM, Jean-Rene David <[EMAIL PROTECTED]> wrote:
> Hi,
>
> A little problem I encountered recently.
>
> I have an array of integers and two indexes within
> that array. I need to get another array identical
> to the first one, except that all cells between
> the two indexes (inclusive) must be compressed to
> one column which is the sum of the originals
> cells.
>
> A program will illustrate below.
>
> What I'm looking for is just a way to do the same
> thing more elegantly. It has nested loops using
> the same index variable and a duplicated test,
> which are both a little ugly.
>
> #!/usr/bin/perl
>
> use warnings;
> use strict;
>
> my @array = qw{ 10 20 30 40 50 };
> my $start = 1;
> my $end = 3;
>
> my @out;
> for( my $i = 0; $i < @array; $i++) {
> my $j;
> for( ; $i >= $start && $i <= $end; $i++) {
> $j += $array[$i];
> if( $i == $end ) {
> push @out, $j;
> }
> }
> push @out, $array[$i];
> }
>
> $\="\n";
> print for @out;
>
> The expected out is:
> 10
> 90
> 50
>
> The second line contains the sum of elements 1, 2
> and 3.
>
> Thanks for any input,
>
> --
> JR
>
> --
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> http://learn.perl.org/
>
>
>