> Hello
>
> This does not work.
>
> `cp $srcfile $dstfile`; || do {
> print "cannot copy $srcfile to $dstfile";
> };
>
> do is also execute if cp working fine. Whz is this so? The next thing I
> would like to
> know how I can print the cp's error message.
>
> Thanks
>
> Urs
This isn't really a normal use of C<do>, you don't really need it at all
you can just use the C<||> or better C<or> to do the same thing. The
reason that it is always executed is because the backticks are capturing
STDOUT, but the error is likely sent on STDERR. I would dispense with
the backticks completely, and switch to using the File::Copy module and
its C<copy> function. It will be much more portable, and easier to
handle error conditions, more secure, etc.
perldoc File::Copy
http://danconia.org
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>