Редактировать: После прочтения ответов, я считаю, что ответ "не делай этого", поэтому я отметил соответствующий ответ в качестве официального ответа.
Есть ли простой способ заставить emacs отображать операторы переключения perl, такие как страница переключения perldoc.perl.org ?
Вот форматирование на perldoc.perl.org:
use Switch;
switch ($val) {
case 1 { print "number 1" }
case "a" { print "string a" }
case [1..10,42] { print "number in list" }
case (\@array) { print "number in list" }
case /\w+/ { print "pattern" }
case qr/\w+/ { print "pattern" }
case (\%hash) { print "entry in hash" }
case (\&sub) { print "arg to subroutine" }
else { print "previous case not true" }
}
Вот форматирование в cperl-mode
после запуска M-x indent-region
во фрагменте:
use Switch;
switch ($val) {
case 1 { print "number 1" }
case "a" { print "string a" }
case [1..10,42] { print "number in list" }
case (\@array) { print "number in list" }
case /\w+/ { print "pattern" }
case qr/\w+/ { print "pattern" }
case (\%hash) { print "entry in hash" }
case (\&sub) { print "arg to subroutine" }
else { print "previous case not true" }
}
У меня необъяснимое желание придерживаться конструкций if-elsif ...
пс. Я думаю, что это описывает желаемый процесс, но похоже, что для его анализа потребуется некоторое время.