# External to Internal

**URL:** <https://www.ruby-forum.com/t/external-to-internal/81870>\
**Category:** Ruby\
**Created:** [January 15, 2007, 9:50pm UTC](https://www.ruby-forum.com/t/external-to-internal/81870 "2007-01-15T21:50:06Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![wpvanpaassen](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/w/6f9a4e/32.png) [@wpvanpaassen](https://www.ruby-forum.com/u/wpvanpaassen)\
**Post date:** [January 15, 2007, 9:50pm UTC](https://www.ruby-forum.com/t/external-to-internal/81870/1 "2007-01-15T21:50:06Z")

</div>

Hi,

I want to convert data supplied by a file into their corresponding  
internal values.

I have an external file with data that are in the form “variable  
name”, tab, followed by their value. The 'value 'can be a single  
number, an array of numbers, or a matrix of numbers, For example,  
the file might look like this:  
a 2.4  
b 1,0, 3.0, 5.0  
c 5, 6, 11  
d [1, 2], [5, 6], [45,55]

I can get a, b, and c to convert to single values and arrays, thanks  
to this forum, but I cannot figure out a way to convert d into an  
array of arrays. Does anyone have any suggestions?

Ideally I would like to match the variable name in the file to the  
corresponding and same name in the program. Any ideas how to do that?

Thanks

Pete Versteegen

---

<div class="post-metadata">

**Author:** ![wpvanpaassen](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/w/6f9a4e/32.png) [@wpvanpaassen](https://www.ruby-forum.com/u/wpvanpaassen)\
**Post date:** [January 15, 2007, 10:00pm UTC](https://www.ruby-forum.com/t/external-to-internal/81870/2 "2007-01-15T22:00:08Z")

</div>

Peter V. wrote:

> b 1,0, 3.0, 5.0  
> c 5, 6, 11  
> d [1, 2], [5, 6], [45,55]
> 
> I can get a, b, and c to convert to single values and arrays, thanks to  
> this forum, but I cannot figure out a way to convert d into an array of  
> arrays. Does anyone have any suggestions?

Just insert an = :

a = 2.4  
b = 1,0, 3.0, 5.0  
c = 5, 6, 11  
d = [1, 2], [5, 6], [45,55]

p a, b, c, d

**END**

Output:

2.4  
[1, 0, 3.0, 5.0]  
[5, 6, 11]  
[[1, 2], [5, 6], [45, 55]]

> Ideally I would like to match the variable name in the file to the  
> corresponding and same name in the program. Any ideas how to do that?

input = \<\<END  
a = 2.4  
b = 1,0, 3.0, 5.0  
c = 5, 6, 11  
d = [1, 2], [5, 6], [45,55]  
END

a = b = c = d = nil  
eval input ## NOT SECURE!  
p a, b, c, d

**END**

Output:

2.4  
[1, 0, 3.0, 5.0]  
[5, 6, 11]  
[[1, 2], [5, 6], [45, 55]]
