in reply to Modules return value
(defun perl-boilerplate () "Basic perl template." (interactive) (if (or (not (file-exists-p (buffer-file-name (current-buffer)))) (= 0 (buffer-size))) (let ((strictures "use warnings;\nuse strict;\n\n#use Data::Dump +er;\n\n")) (cond ((string-match "\\([^/]*\\)\.pm$" buffer-file-name) (let* ((case-fold-search nil) (package-name (replace-regexp-in-string "/" "::" (replace-regexp-in-string "^.*/[^[:upper:]][^/]*/\\|\\.pm$" "" buffer-file-name)))) (insert (concat "package " package-name ";\n" "\n=head1 " package-name "\n\n=cut\n\n" strictures "\n__PACKAGE__\n")) (backward-char 14))) ((string-match "\\(?:\.\\(?:p\\(?:er\\)?l\\|t\\)$\\)\\|^[^. +]+$" buffer-file-name) (insert (concat "#!/usr/bin/perl\n" strictures))))))) (add-hook 'cperl-mode-hook 'perl-boilerplate)
Opening a new .pm file creates this:
package My; =head1 My =cut use warnings; use strict; #use Data::Dumper; __PACKAGE__
while opening a new .pl script creates this:
#!/usr/bin/perl use warnings; use strict; #use Data::Dumper;
YMMV.
|
|---|