Hallo,
[..]bleibt ändert am Ergebnis nichts. Wie bringe ich perl dazu, dass er die Zeichenkette "0644" bei der übergabe an chmod in eine Oktal- und keine Dezimalzahl umwandelt?
Hmm. vielleicht mit oct() ???
oct EXPR
oct Interprets EXPR as an octal string and returns the corresponding
value. (If EXPR happens to start off with "0x", interprets it as
a hex string. If EXPR starts off with "0b", it is interpreted as
a binary string.) The following will handle decimal, binary,
octal, and hex in the standard Perl or C notation:
$val = oct($val) if $val =~ /^0/;
If EXPR is omitted, uses "$_". To go the other way (produce a
number in octal), use sprintf() or printf():
$perms = (stat("filename"))[2] & 07777;
$oct_perms = sprintf "%lo", $perms;
The oct() function is commonly used when a string such as "644"
needs to be converted into a file mode, for example. (Although
perl will automatically convert strings into numbers as needed,
this automatic conversion assumes base 10.)
--Rolf