# Array prepending nil object

**URL:** <https://www.ruby-forum.com/t/array-prepending-nil-object/99285>\
**Category:** Ruby\
**Created:** [January 31, 2006, 6:55am UTC](https://www.ruby-forum.com/t/array-prepending-nil-object/99285 "2006-01-31T06:55:57Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Serdar\_KSSSSlSSSSSS](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/cc9497/32.png) [@Serdar\_KSSSSlSSSSSS](https://www.ruby-forum.com/u/Serdar_KSSSSlSSSSSS)\
**Post date:** [January 31, 2006, 6:55am UTC](https://www.ruby-forum.com/t/array-prepending-nil-object/99285/1 "2006-01-31T06:55:57Z")

</div>

I’m going through Brian Schröder’s tutorial and hit a small snag. The  
code is (on page 16):

print 'Array as stack: ’  
stack = Array.new()  
stack.push(‘a’)  
stack.push(‘b’)  
stack.push(‘c’)  
print stack.pop until stack.empty?

The display that I’m getting is:  
Array as stack: cbanil

So somehow nil is creeping it’s way into my array but I’m not sure  
how. Any ideas?

---

<div class="post-metadata">

**Author:** ![Serdar\_KSSSSlSSSSSS](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/cc9497/32.png) [@Serdar\_KSSSSlSSSSSS](https://www.ruby-forum.com/u/Serdar_KSSSSlSSSSSS)\
**Post date:** [January 31, 2006, 7:14am UTC](https://www.ruby-forum.com/t/array-prepending-nil-object/99285/2 "2006-01-31T07:14:00Z")

</div>

Serdar KÄ±lÄ±Ã§ wrote:

> The display that I’m getting is:  
> Array as stack: cbanil
> 
> So somehow nil is creeping it’s way into my array but I’m not sure  
> how. Any ideas?

The nil is just the return value of the last expression, not part of the  
output of the print calls.

You can see it more clearly in irb:

irb(main):001:0\> print 'Array as stack: ’  
Array as stack: =\> nil  
irb(main):002:0\> stack = Array.new()  
=\> []  
irb(main):003:0\> stack.push(‘a’)  
=\> [“a”]  
irb(main):004:0\> stack.push(‘b’)  
=\> [“a”, “b”]  
irb(main):005:0\> stack.push(‘c’)  
=\> [“a”, “b”, “c”]  
irb(main):006:0\> print stack.pop until stack.empty?  
cba=\> nil

The printed output shows up on the left of the =\>.

---

<div class="post-metadata">

**Author:** ![Serdar\_KSSSSlSSSSSS](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/cc9497/32.png) [@Serdar\_KSSSSlSSSSSS](https://www.ruby-forum.com/u/Serdar_KSSSSlSSSSSS)\
**Post date:** [January 31, 2006, 7:26am UTC](https://www.ruby-forum.com/t/array-prepending-nil-object/99285/3 "2006-01-31T07:26:12Z")

</div>

Thanks Joel. I did actually use irb but only through MINGW on Windows  
XP, where unfortunately you don’t get the descriptive “code/line  
marker” thingys.

---

<div class="post-metadata">

**Author:** ![Serdar\_KSSSSlSSSSSS](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/cc9497/32.png) [@Serdar\_KSSSSlSSSSSS](https://www.ruby-forum.com/u/Serdar_KSSSSlSSSSSS)\
**Post date:** [January 31, 2006, 7:29am UTC](https://www.ruby-forum.com/t/array-prepending-nil-object/99285/4 "2006-01-31T07:29:14Z")

</div>

Thank you too Brian, that makes it quite clear.

---

<div class="post-metadata">

**Author:** ![Serdar\_KSSSSlSSSSSS](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/cc9497/32.png) [@Serdar\_KSSSSlSSSSSS](https://www.ruby-forum.com/u/Serdar_KSSSSlSSSSSS)\
**Post date:** [January 31, 2006, 7:20am UTC](https://www.ruby-forum.com/t/array-prepending-nil-object/99285/5 "2006-01-31T07:20:09Z")

</div>

On Jan 31, 2006, at 12:54 AM, Serdar Kõlõ wrote:

> So somehow nil is creeping it’s way into my array but I’m not sure  
> how. Any ideas?

You are running this inside irb. print returns nil, which you are  
interpreting as being part of the output.

Try adding:

```
print "\n"

```

To the bottom of your example.

Brian
