setting range of indices in an array with a constant value

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • zcabeli
    New Member
    • Jan 2008
    • 51

    setting range of indices in an array with a constant value

    Hi

    i'd like to set a range of indices in a list with one constant value.
    for example

    if list = [ 1 2 3 4 5 6]

    then
    list(1..4,6) = 9
    will change 'list' as so it now equals = [ 9 9 9 9 5 9]

    i tried $list(1..4) = 9 but it only set the first index cell


    how this action can be done ?
    thanks,
  • nithinpes
    Recognized Expert Contributor
    • Dec 2007
    • 410

    #2
    Originally posted by zcabeli
    Hi

    i'd like to set a range of indices in a list with one constant value.
    for example

    if list = [ 1 2 3 4 5 6]

    then
    list(1..4,6) = 9
    will change 'list' as so it now equals = [ 9 9 9 9 5 9]

    i tried $list(1..4) = 9 but it only set the first index cell


    how this action can be done ?
    thanks,
    This is one way of doing it:
    [CODE=perl]
    use Data::Dumper;
    @list=(1,2,3,4, 5,6);
    foreach my $el ((1..4,6)) {
    #find the index of the element to br replaced
    my ($index) = grep ($list[$_] eq $el , 0 .. $#list);
    splice(@list,$i ndex,1,9); #replace one element at that position with 9
    }
    print Dumper @list;
    [/CODE]

    Comment

    Working...