in reply to Re^3: Why aren't these equivalent?
in thread Why aren't these equivalent?

Thanks for your suggestions Joost. I had already tried the die "......$!" before I posted my original message. It didn't help because I'm testing this on a web server, through a browser, and the page I'm generating just terminates at the point of error without reporting the error. I also don't seem to have access to the error_log on this particular (institutional) server.

Tilly (see below) hit on the cause of the problem. Just to follow up on your suggestion, I ran the script from a command line and got another confirmation that it was the taint checking:
Insecure dependency in unlink while running with -T switch at ./de +lete.cgi line 43.
Thanks again.

Replies are listed 'Best First'.
Re^5: Why aren't these equivalent?
by tinita (Parson) on Jul 12, 2008 at 14:37 UTC
    four points:
    I had already tried the die "......$!" before I posted my original message.
    please tell so if you're posting a question, so others don't make suggestions which are useless.
    It didn't help because I'm testing this on a web server, through a browser, and the page I'm generating just terminates at the point of error without reporting the error.
    this is because of the die(). if you can't see the errorlog (see below), then don't die, but just *print* the message. in either case, the message in $! *is* useful.
    I also don't seem to have access to the error_log on this particular (institutional) server.
    that's always bad. how do you want to develop if you can't see the errorlog? your best bet here is
    use CGI::Carp qw/ fatalsToBrowser /;
    you will get all runtime errors in the browser then. (and only activate that line when you're developing, so users don't see any detailed error messages that are meant to only be seen by you)

    and as others have said, *please* check the filename, otherwise anybody can delete any file on your system which you (the webserver) has write access to.