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]