hi Hari,

Josh Cheek wrote in post #1033979:

> Variables that begin with dollar signs are global. So if you namei t
> $names, then it will be available everywhere.

  this is true, but global variables are generally a bad idea - they can
gum up the works in unexpected ways...  probably best to avoid them if
you can.

> Depending on what you're trying to do, there are a number of possible
> ways
> to handle this.

  this is also true...  if you give more background on what you want to
do, it would make it easier to offer helpful solutions.

  a couple of things you could think about are a creating a Class in the
first script that defines the array to be used in the second (as Josh
mentions,) or using YAML to store and retrieve the array.

  using a Class to define the array could look something like this:

  ### 1.rb ###

  class GroupsOfStuff

    attr_accessor :people, :cats

    def initialize
      @people = ["Joe", "Po", "So"]
      @cats = ["Bill", "BooBoo", "Felix"]
    end

  end


  ### 2.rb ##

  require '1'

  groups = GroupsOfStuff.new

  p groups.people
  p groups.cats


  ## returns:
  =>["Joe", "Po", "So"]
    ["Bill", "BooBoo", "Felix"]


  using YAML could look like this:

  ### 1.rb ###

  require 'yaml'

  people = ["Joe", "Po", "So"]
  cats = ["Bill", "BooBoo", "Felix"]

  File.open("groups_of_stuff.yml", "w") do |file|
    file.puts people.to_yaml
    file.puts cats.to_yaml
  end


  ### 2.rb ###

  require '1'

  data = File.open("groups_of_stuff.yml")

  YAML.each_document(data) do |doc|
   p doc
  end

  data.close


  ## returns:
  =>["Joe", "Po", "So"]
    ["Bill", "BooBoo", "Felix"]


  hth -

  j

-- 
Posted via http://www.ruby-forum.com/.