Thread perltidy - Schlüssel in Hashreferenz für Zuweisung in Abfrage falsch eingerückt (19 answers)
Opened by Dachschaden at 2013-10-19 18:51

Gast Dachschaden
 2013-10-19 18:51
#171308 #171308
Ich bin zwar erst Anfänger mit perltidy, habe aber die Doku rauf und runter gelesen (und mir schwirrt der Kopf :().

Dies ist der Originalcode:

Code (perl): (dl )
1
2
3
4
5
6
my %a;
my $b={'c'=>0,'d'=>0};
if(1)
{
        $a{$b->{'c'}}=$b->{'d'}
}


Ich rufe perltidy so auf (bash):

Code: (dl )
perltidy -bbt=2 -sil=0 script.pl #block-brace-tightness auf 2 setzen, direkt ohne Einrückung starten


Und erhalte:

Code (perl): (dl )
1
2
3
4
5
6
my %a;
my $b = { 'c' => 0, 'd' => 0 };
if (1) {
    $a{ $b->{'c'} } = $b->{
        'd'};
}


Hier wurde in Zeile 4 der Zugriff auf 'd' innerhalb der Hashreferenz $b falsch formatiert, der schiebt da eine leere Zeile ein, wo keine hingehört ("{\n 'd'}" anstatt "{'d'}"). Ist das jetzt ein Bug in perltidy, oder habe ich nur wieder einen winzigen Passus in man perltidy überlesen?

Ich habe das Beispiel natürlich "debuggt". Die kaputte Einrückung taucht NUR dann auf, wenn sich die Zuweisung des Wertes in der Hashreferenz in einem Block befindet, ob "if", "unless" oder "while" ist völlig egal. Und mit bbt=1 taucht er auch nicht auf, aber ich will's scrict haben.

Meine zwei Fragen sind:

1. Ist das ein Bug in perltidy?
2. Wenn ja, hat jemand einen Workaround hierfür?

Die Version von perltidy bei mir ist 20101217 und relativ frisch installiert, Betriebssystem ist Debian.

View full thread perltidy - Schlüssel in Hashreferenz für Zuweisung in Abfrage falsch eingerückt