finding ....
Lennart Augustsson
lennart@augustsson.net
Wed, 20 Mar 2002 02:42:02 +0100
Thank you for making my point. All these are indeed examples of broken code.
(Not because it's Perl. :)
-- Lennart
Pixel wrote:
> Lennart Augustsson <lennart@augustsson.net> writes:
>
> > Just because many applications use this doesn't make it safe or good.
> > Presumably you are testing for the existence of the file to do something
> > to it (read, create, delete...). It's better to do the operation you want to
> > do and have it fail if the file is missing (or existing if you create). You
> > then just have to handle the exception (that part is already in H98) or
> > proceed with the normal path. I claim the code simpler this way and you
> > avoid any race conditions.
>
> I said real-world pbs ;p
>
> WARNING, perl below!
>
> - checking if devfs is mounted in /dev: -e "/dev/.devfsd"
> - checking wether there is cdrom drive with devfs: -e "/dev/cdroms/cdrom0"
> - looking for a file in a PATH-like:
> if ($f !~ m|/|) { -e "$_/$f" and $f = "$_/$f", last foreach @icon_paths }
> -
> if (-e "$f.gz") {
> # ... the wanted file is gzip'ed, doing whatever is needed
> }
>
> -
> -x "/bin/sh" or die "cannot open shell - /bin/sh doesn't exist";
> fork and return;
> # doing things
> # now, and only now exec'ing
> exec "/bin/sh"
>
> -
> if (! -e '/usr/sbin/showmount') {
> my $pkg = 'nfs-utils-clients';
> $in->ask_okcancel('', _("The package %s needs to be installed. Do you want to install it?", $pkg), 1) or return;
> $in->do_pkgs->install($pkg);
> }
>
> If you want some more, just ask ;)
> _______________________________________________
> Haskell mailing list
> Haskell@haskell.org
> http://www.haskell.org/mailman/listinfo/haskell