[comp.lang.perl] perl chmod problem

worley@compass.com (Dale Worley) (02/14/91)

   X-Name: Steven S. Dick

   The program looks something like this:
      print "chmod $perms, @filelist\n";
      chmod $perms, @filelist;
   It prints the correct thing, but doesn't give the file the right permissions.
   If I hard code the permissions, it works:
      chmod 0600, @filelist;
   The print above DOES print 0600.

The problem is that $perms has the string value "0600", but chmod
demands a number for its first argument.  Although 0600 when coded in
a program is interpreted as an octal number, when the string 0600 is
coerced at runtime from string to number, it is interpreted in
decimal.  (Inconsistency?)  Consider the program:

    print "0600"+0, "\n";
    print 0600+0, "\n";

which prints:

    600
    384

You need to find some way to convert an octal string to its numeric
value.

Dale Worley		Compass, Inc.			worley@compass.com
--
True, money _can't_ buy happiness, but it isn't happiness I want.  It's money.