I've got a thing that I think "ought to" work, but it does not. Most people will probably think it's a waste of bandwidth, but it is driving me crazy.
As I understand it, in Perl, an array is really a vector, or a 1-dimensional array. A multi-dimensional array can be hacked together. One way of doing this is: @cnxns = (); push @cnxns, [$a, $b, $c]; One way of accessing these elements is: print "$cnxns[0][0]\n" print "$cnxns[0][1]\n" print "$cnxns[0][2]\n" ...which in this example with only one "row" in the array, would print the values of $a, $b and $c. Now, what I'm doing with this array is keeping track of network connections, so I'm continually pulling a row off the bottom, servicing that connection, then pushing it back onto the array (or not, if the connection is done), or pushing new connections onto the array. So if this works to load it: push @cnxns, [$a, $b, $c]; ...then to remove a row, I ought to be able to do something like this: ($a, $b, $c) = shift @cnxns; I've tried every syntax variation I can think of, but it does not work. What does work is: @row = shift @cnxns; <access $a, $b and $c out of @row> This seems like an annoyingly unnecessary piece of indirection to me. Does anyone know a better way to do this? I hope I did not lose anyone with this wordy post. Barry Brevik _______________________________________________ ActivePerl mailing list [email protected] To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs
