Hi All,

I want to read contents of a dir, filtered, into a hash.  I have this:

#/usr/local/bin -w
use strict;
my (@ARRAY, %TEST, $FILTER) = "";

print "Enter filter:";
$FILTER = <STDIN>;
chomp $FILTER;
@ARRAY = ` ls -l /foo/bar | grep "$FILTER" `;
for (@ARRAY) {
chomp;
}

This gets just the info I want, but it's all run together as a single string in 
each element.  How can I get each portion of each element returned to hash with 
filename as the key?  I would like filename as key and separate values for each 
field, ie. rights, size, owner, group, date.

I'm guessing I can do something like this:

for (@ARRAY) {
#magical split on whitespace and stuff into hash;
}

But what is the magical split thingy?  I tried %TEST = (split " ");
but that didn't seem to work as rights are the same on all files and since that 
went in first as key, it just kept overwriting existing keys.  I then tried 
this, which I think was very close:

for (@ARRAY) {
($File, $Time, $Date, $Size, $Group, $Owner, $Rights) = (reverse split " ");
$TEST {$File} = $Time, $Date, $Size, $Group, $Owner, $Rights;
}

but I am getting "Useless use of a variable in void context [...]".  I know 
there are much easier ways to manipulate file and dir data.  I am doing this as 
practice as I will eventually need to retreive data from a proprietary command 
that will return data in a simlar manner and I need to be able to manipulate it.

Any and all pointers appreciated!
Thanx!

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to