in reply to Text Databases

I would recommend against naming variables based on dynamic input; that can get you into all sorts of troubles. A better idea (besides using DB files or an RDBMS, of course) would be to have a hash whose values are anonymous array references containing the data you need. As for separating the file data, you need to split the line on spaces. As far as I understand the question, I think this will work for you:
use strict; my %users; open USERS, "<users.txt"; while (<USERS>) { chomp; my @line = split / /; $users{shift @line} = \@line; } close USERS;
To get back at the data, you need to dereference the array, i.e. @{$users{$name}}. For example, to get a dump of the users,print join ' ', ($_, map($_, @{$users{$_}}), "\n") for (keys %users);Of course, you'd be better off using a DB file if you can; flat files require you to reinvent the wheel in a lot of ways. Provided tied hashes properly handle array references (which I'm not sure of; I stick to RDBMSs), this should extend to that pretty easily.