ich würde gerne in Perl, dezimal zahlen in oktal zahl umwandeln und das ohne printf?

... komplette Frage anzeigen

1 Antwort

my $perm = 040755; # Oktal mit führender Null!

my $dperm = $perm & 0777; # Jetzt 0755 oktal ohne 040
my $operm = sprintf "%03o", $dperm; # String "755"

print $operm; # gibt "755" aus

Wenn du die Null aus 40755 mit maskieren willst, nimm 07777 in der ersten Zeile und "%04o" in der zweiten Zeile.

Die letzte Zeile dient nur der Demonstration. Aber um eine Zahl in einen oktalen String zu konvertieren kommst du um sprintf() nicht drum herum!

Viel Spaß! :)

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von nam900
07.06.2016, 13:33


my $perm = $stat[2]; 
my $dperm = $perm & 0777;
while(!($dperm==0)){
$mod=$mod.($dperm%8);
use integer;
$dperm/=8;}
my $operm= reverse($mod);


habe dadurch geschafft ohne printf oder sprintf umzuwandeln, danke





0