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]