# Strange ruby-1.9.1 array substitution answer

**URL:** <https://www.ruby-forum.com/t/strange-ruby-1-9-1-array-substitution-answer/169050>\
**Category:** Ruby\
**Created:** [May 28, 2009, 8:06pm UTC](https://www.ruby-forum.com/t/strange-ruby-1-9-1-array-substitution-answer/169050 "2009-05-28T20:06:16Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![micheldogger](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/b5e925/32.png) [@micheldogger](https://www.ruby-forum.com/u/micheldogger)\
**Post date:** [May 28, 2009, 8:06pm UTC](https://www.ruby-forum.com/t/strange-ruby-1-9-1-array-substitution-answer/169050/1 "2009-05-28T20:06:16Z")

</div>

Strange !

arr = [1,2,3,4,5]  
arr[0,2] = nil  
=\> ruby 1.8 : arr = [3,4,5]  
=\> ruby 1.9 : arr = [nil, 3,4,5]

ruby -v  
ruby 1.9.1 (2008-10-28 revision 19983) [i386-mswin32]

---

<div class="post-metadata">

**Author:** ![micheldogger](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/b5e925/32.png) [@micheldogger](https://www.ruby-forum.com/u/micheldogger)\
**Post date:** [May 28, 2009, 8:28pm UTC](https://www.ruby-forum.com/t/strange-ruby-1-9-1-array-substitution-answer/169050/2 "2009-05-28T20:28:35Z")

</div>

Michel D. wrote:

> Strange !
> 
> arr = [1,2,3,4,5]  
> arr[0,2] = nil  
> =\> ruby 1.8 : arr = [3,4,5]  
> =\> ruby 1.9 : arr = [nil, 3,4,5]

that might be a bugI’d ask the core people.  
-=r

---

<div class="post-metadata">

**Author:** ![micheldogger](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/b5e925/32.png) [@micheldogger](https://www.ruby-forum.com/u/micheldogger)\
**Post date:** [May 28, 2009, 8:32pm UTC](https://www.ruby-forum.com/t/strange-ruby-1-9-1-array-substitution-answer/169050/3 "2009-05-28T20:32:26Z")

</div>

On Thu, May 28, 2009 at 2:06 PM, Michel D.  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)wrote:

> Strange !
> 
> arr = [1,2,3,4,5]  
> arr[0,2] = nil  
> =\> ruby 1.8 : arr = [3,4,5]  
> =\> ruby 1.9 : arr = [nil, 3,4,5]
> 
> ruby -v  
> ruby 1.9.1 (2008-10-28 revision 19983) [i386-mswin32]

It’s a bug. They either fixed it in a more recent version or it’s a  
Windows  
specific issue. On my Mac it works as expected:

$ ruby1.9 -v  
ruby 1.9.1p0 (2009-01-30 revision 21907) [i386-darwin9]

$ irb

> > arr = [1,2,3,4,5]  
> > =\> [1, 2, 3, 4, 5]  
> > arr[0,2] = nil  
> > =\> nil  
> > arr  
> > =\> [3, 4, 5]

Cheers,  
Antonio

---

<div class="post-metadata">

**Author:** ![micheldogger](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/b5e925/32.png) [@micheldogger](https://www.ruby-forum.com/u/micheldogger)\
**Post date:** [May 28, 2009, 9:00pm UTC](https://www.ruby-forum.com/t/strange-ruby-1-9-1-array-substitution-answer/169050/4 "2009-05-28T21:00:17Z")

</div>

Roger P. wrote:

> > It’s a bug. They either fixed it in a more recent version or it’s a  
> > Windows  
> > specific issue. On my Mac it works as expected:

> Here’s what I get in Linux with TRUNK.

> maybe macs are special? “Guess we’re not cool enough” (from commercial).  
> Just kidding.  
> Take care.  
> -=r

Open source … and many open ends  
M.

---

<div class="post-metadata">

**Author:** ![micheldogger](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/b5e925/32.png) [@micheldogger](https://www.ruby-forum.com/u/micheldogger)\
**Post date:** [May 28, 2009, 8:43pm UTC](https://www.ruby-forum.com/t/strange-ruby-1-9-1-array-substitution-answer/169050/5 "2009-05-28T20:43:56Z")

</div>

> It’s a bug. They either fixed it in a more recent version or it’s a  
> Windows  
> specific issue. On my Mac it works as expected:
> 
> $ ruby1.9 -v  
> ruby 1.9.1p0 (2009-01-30 revision 21907) [i386-darwin9]
> 
> $ irb
> 
> > > arr = [1,2,3,4,5]  
> > > =\> [1, 2, 3, 4, 5]
> > 
> > > arr[0,2] = nil  
> > > =\> nil
> > 
> > > arr  
> > > =\> [3, 4, 5]

Here’s what I get in Linux with TRUNK.

> > RUBY\_DESCRIPTION  
> > =\> “ruby 1.9.2dev (2009-05-28 trunk 23601) [i686-linux]”
> 
> > arr = [1,2,3,4,5]  
> > =\> [1, 2, 3, 4, 5]
> 
> > arr[0,2] = nil  
> > =\> nil
> 
> > arr  
> > =\> [nil, 3, 4, 5]

maybe macs are special? “Guess we’re not cool enough” (from commercial).  
Just kidding.  
Take care.  
-=r

---

<div class="post-metadata">

**Author:** ![micheldogger](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/b5e925/32.png) [@micheldogger](https://www.ruby-forum.com/u/micheldogger)\
**Post date:** [May 29, 2009, 7:58am UTC](https://www.ruby-forum.com/t/strange-ruby-1-9-1-array-substitution-answer/169050/6 "2009-05-29T07:58:13Z")

</div>

Yukihiro M. wrote:

> It’s a behavior change in 1.9, use
> 
> arr[0,2] = []
> 
> instead.
> 
> ```
> matz.
> 
> ```

Thanks, Matz.  
It is exactly what I did.  
I was not aware of the change … or I forgot.

M.

---

<div class="post-metadata">

**Author:** ![micheldogger](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/b5e925/32.png) [@micheldogger](https://www.ruby-forum.com/u/micheldogger)\
**Post date:** [May 29, 2009, 12:22am UTC](https://www.ruby-forum.com/t/strange-ruby-1-9-1-array-substitution-answer/169050/7 "2009-05-29T00:22:14Z")

</div>

Hi,

In message “Re: Strange ruby-1.9.1 array substitution answer”  
on Fri, 29 May 2009 03:06:18 +0900, Michel D.  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:

|Strange !  
|  
|arr = [1,2,3,4,5]  
|arr[0,2] = nil  
|=\> ruby 1.8 : arr = [3,4,5]  
|=\> ruby 1.9 : arr = [nil, 3,4,5]

It’s a behavior change in 1.9, use

arr[0,2] = []

instead.

```
          matz.

```
