in reply to From arrayref to hashref

> Thing is I got errors for an undeclared hash when I tried this and simply changing my code to say %cells where it had @cells did not work because ???
This is because %cells and @cells are 2 different entries in the symbol table, so they may have the same name, but they aren't the same variable.
To assign to the hash %cells you could just say
my %cells = map { ... };
This works assuming that you'll be giving it a list with key-value pairs like so
my %cells = qw(key1 val1 key2 val2 key3 val3);
This is because hashes are assigned lists where each value alternates between being a key and a value. So the following are equivalent.
my %cells = qw(foo one bar two baz three); my %cells = (foo => "one", bar => "two", baz => "three");

HTH

broquaint