> [EMAIL PROTECTED] wrote: > > 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) = ""; > >
You may want to make sure $FILTER isn't anythign harmful here: For instance what if Someone enters whatever" someother evil command "sucker You might want to try the File:: modules and/or use Perl functions : use File::Slurp; my @files = read_dir('/foo/bar'); my @ARRAY = grep /$FILTER/, @files; for(@ARRAY) { my @fileinfo = stat("/foo/bar/$_"); } Or to make it shorter and sexxier: my %files; for(grep(/$FILTER/, read_dir('/foo/bar'))) { my @fileinfo = stat("/foo/bar/$_"); #ADD @fileinfo the file hash you could even do (${$files{$_}}{'dev'}, ${$files{$_}}{'ino'}, ${$files{$_}}{'mode'}, etc..) = stat(...); }# perldoc -f stat Now if someone tries to put in evil $FILTER no system damage will be done, at worst, no files will match. AND $FILTER can be a Perl regex, even better!! > > print "Enter filter:"; > > $FILTER = <STDIN>; > > chomp $FILTER; > > @ARRAY = ` ls -l /foo/bar | grep "$FILTER" `; > > for (@ARRAY) { > > chomp; > > } > -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]