in reply to Checking File Types

Thanks for that but now this wont work
opendir(DIR, "/var/www/virtual/merchandisemarket.net/m_images/" +); my @userfiles = sort grep !/^\.\.?\z/, readdir DIR; close DIR; unless (grep {$filename eq $_} @userfiles) { error("Your already uploaded a file named \"$_\"!"); }

Replies are listed 'Best First'.
Re: Re: Checking File Types
by Chmrr (Vicar) on Oct 10, 2002 at 04:12 UTC

    Th phrase "won't work" or any varient there of conveys no information -- see on asking for help for more information on how to, well, ask for help. As it is, we can only guess at what "wont work."

    The only guess I can come up with is that you're using unless where you want to use if. That is, if the filename they just uploaded is already in the list of user files, then we should give an error.

    However, you're doing more work than you need to. It's a simple matter to ask if a file exists in a certain directory; just use the -e file test, as so:

    if (-e "/var/www/virtual/merchandisemarket.net/m_images/$filename") { error(qq/You already uploaded a file named "$_!"/); }

    ..in place of the whole block of code you wrote above. Also note the use of the qq/.../ operator, so that one doens't need to have all that ugly escaping to put quotes in interpolated text.

    perl -pe '"I lo*`+$^X$\"$]!$/"=~m%(.*)%s;$_=$1;y^`+*^e v^#$&V"+@( NO CARRIER'