http://qs321.pair.com?node_id=516539


in reply to Perl Best Practices PerlTidy

The following code will also cause emacs to auto-perltidy anything you use cperl-mode with.

(add-to-list 'cperl-mode-hook (lambda () (substitute-key-definition 'save-buffer 'cperl-save-buffer cperl-mode-map global-map))) (defvar cperl-auto-tidy t) (defun cperl-save-buffer (&optional args) "Perltidy and save current buffer in visited file if modified." (interactive) (if (and (buffer-modified-p) cperl-auto-tidy) (perltidy-buffer)) (save-buffer)) (defun perl-buffer () (interactive (shell-command-on-region (point-mi +n) (point-max) "perl" nil nil nil))) (defun cperl-auto-tidy (&optional arg) "Automatically perltidy (or not)" (setq cperl-auto-tidy (if arg t nil))) (defun cperl-toggle-auto-tidy () (interactive) (setq cperl-auto-tidy (not cperl-auto-tidy))) (defun perltidy-buffer () "Runs an entire buffer through perltidy." (interactive) (let ((orig-point (point))) (shell-command-on-region (point-min) (point-max) "perltidy -st -se -q -syn" nil t shell-command-default-error-buff +er) (goto-char (if (<= orig-point (point-max)) orig-point (point-max)))))