Danke Dir!
Gegeben ist ein integer. Anhand dieser einen Zahl sind Platzhalter zu setzen für neun Checkboxen, checked oder nicht und ich denke schon, dass ich dafür 9 Zeilen Code brauche.
Ja, aber das Schieben muss nicht sein.
Es macht den Code verständlicher. Bereits anhand dieser String-Schreibweise -rwxr-xr-x wird ein Programmierer eine Verschiebung als Lösung anstreben, v.l.n.r.: Owner, Group, Other.
Und ja: Sprechende Variablen, gerade für die Platzhalter:
$self->{STASH}{owner_read} = 'checked' if $owner & 4;
$self->{STASH}{owner_write} = 'checked' if $owner & 2;
$self->{STASH}{owner_execute} = 'checked' if $owner & 1;
.....