# Save pp output to a string

**URL:** <https://www.ruby-forum.com/t/save-pp-output-to-a-string/120811>\
**Category:** Ruby\
**Created:** [November 20, 2007, 7:52pm UTC](https://www.ruby-forum.com/t/save-pp-output-to-a-string/120811 "2007-11-20T19:52:17Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![oliver](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/o/85f322/32.png) [@oliver](https://www.ruby-forum.com/u/oliver)\
**Post date:** [November 20, 2007, 7:52pm UTC](https://www.ruby-forum.com/t/save-pp-output-to-a-string/120811/1 "2007-11-20T19:52:17Z")

</div>

hi, folks -

how do I save the output from pp to a string for later use?

what I had hoped for is something like this:

```
 x= [2, 3,4]
 res = eval "pp x"

```

but that doesn’t work.

thanks for help

Oliver

---

<div class="post-metadata">

**Author:** ![oliver](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/o/85f322/32.png) [@oliver](https://www.ruby-forum.com/u/oliver)\
**Post date:** [November 20, 2007, 8:05pm UTC](https://www.ruby-forum.com/t/save-pp-output-to-a-string/120811/2 "2007-11-20T20:05:49Z")

</div>

On Nov 20, 11:48 am, Oliver [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> hi, folks -
> 
> how do I save the output from pp to a string for later use?

irb(main):001:0\> require ‘pp’  
=\> true

irb(main):002:0\> h = {(‘a’\*60)=\>[‘b’\*60,‘c’\*60],  
(‘d’\*60)=\>[‘e’\*60,‘f’\*60]}  
=\>  
{“dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd”=\>[“eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee”,  
“ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff”],  
“aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa”=\>[“bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb”,  
“cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc”]}

irb(main):003:0\> pp h  
{“dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd”=\>  
[“eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee”,  
“ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff”],  
“aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa”=\>  
[“bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb”,  
“cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc”]}  
=\> nil

irb(main):004:0\> str = h.pretty\_inspect  
=\> “{"dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd"=\>  
\n ["eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee  
eeeeee",\n  
"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"],\n  
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa  
aaaaaaaaaaaaa"=\>\n  
["bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",\n  
"cccccccccccccccccccccccccccccccccccccc  
cccccccccccccccccccccc"]}\n”

irb(main):005:0\> puts str  
{“dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd”=\>  
[“eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee”,  
“ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff”],  
“aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa”=\>  
[“bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb”,  
“cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc”]}  
=\> nil

---

<div class="post-metadata">

**Author:** ![oliver](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/o/85f322/32.png) [@oliver](https://www.ruby-forum.com/u/oliver)\
**Post date:** [November 20, 2007, 8:46pm UTC](https://www.ruby-forum.com/t/save-pp-output-to-a-string/120811/3 "2007-11-20T20:46:54Z")

</div>

On Wed, Nov 21, 2007 at 03:50:06AM +0900, Oliver wrote:

> hi, folks -
> 
> how do I save the output from pp to a string for later use?  
> require ‘pp’  
> x=[2,3,4]  
> string=""  
> PP.pp(x,string)  
> puts string  
> =\> [2, 3, 4]

works for IO objects as well, or anything that supports \<\<.

---

<div class="post-metadata">

**Author:** ![oliver](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/o/85f322/32.png) [@oliver](https://www.ruby-forum.com/u/oliver)\
**Post date:** [November 20, 2007, 8:51pm UTC](https://www.ruby-forum.com/t/save-pp-output-to-a-string/120811/4 "2007-11-20T20:51:35Z")

</div>

exactly what I need, thanks very much.

Oliver

---

<div class="post-metadata">

**Author:** ![oliver](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/o/85f322/32.png) [@oliver](https://www.ruby-forum.com/u/oliver)\
**Post date:** [November 21, 2007, 1:31am UTC](https://www.ruby-forum.com/t/save-pp-output-to-a-string/120811/5 "2007-11-21T01:31:02Z")

</div>

Hallelujah! I thought this was impossible.

On Nov 20, 2007 11:50 AM, Oliver [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> > > how do I save the output from pp to a string for later use?  
> > > “cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc”]}  
> > > irb(main):004:0\> str = h.pretty\_inspect  
> > > irb(main):005:0\> puts str  
> > > {“dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd”=\>  
> > > [“eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee”,  
> > > “ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff”],  
> > > “aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa”=\>  
> > > [“bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb”,  
> > > “cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc”]}  
> > > =\> nil

–  
Giles B.

Podcast: [http://hollywoodgrit.blogspot.com](http://hollywoodgrit.blogspot.com)  
Blog: [http://gilesbowkett.blogspot.com](http://gilesbowkett.blogspot.com)  
Portfolio: [http://www.gilesgoatboy.org](http://www.gilesgoatboy.org)  
Tumblelog: [http://giles.tumblr.com](http://giles.tumblr.com)
