|
@@ -38,17 +38,6 @@
|
|
|
(defvar org-babel-perl-command "perl"
|
|
|
"Name of command to use for executing perl code.")
|
|
|
|
|
|
-(defun org-babel-expand-body:perl (body params)
|
|
|
- "Expand BODY according to PARAMS, return the expanded body."
|
|
|
- (let ((vars (mapcar #'cdr (org-babel-get-header params :var))))
|
|
|
- (concat
|
|
|
- (mapconcat ;; define any variables
|
|
|
- (lambda (pair)
|
|
|
- (format "$%s=%s;"
|
|
|
- (car pair)
|
|
|
- (org-babel-perl-var-to-perl (cdr pair))))
|
|
|
- vars "\n") "\n" (org-babel-trim body) "\n")))
|
|
|
-
|
|
|
(defun org-babel-execute:perl (body params)
|
|
|
"Execute a block of Perl code with Babel.
|
|
|
This function is called by `org-babel-execute-src-block'."
|
|
@@ -57,7 +46,8 @@ This function is called by `org-babel-execute-src-block'."
|
|
|
(vars (nth 1 processed-params))
|
|
|
(result-params (nth 2 processed-params))
|
|
|
(result-type (nth 3 processed-params))
|
|
|
- (full-body (org-babel-expand-body:perl body params))
|
|
|
+ (full-body (org-babel-expand-body:generic
|
|
|
+ body params (org-babel-variable-assignments:perl params)))
|
|
|
(session (org-babel-perl-initiate-session session)))
|
|
|
(org-babel-reassemble-table
|
|
|
(org-babel-perl-evaluate session full-body result-type)
|
|
@@ -70,6 +60,15 @@ This function is called by `org-babel-execute-src-block'."
|
|
|
"Prepare SESSION according to the header arguments in PARAMS."
|
|
|
(error "Sessions are not supported for Perl."))
|
|
|
|
|
|
+(defun org-babel-variable-assignments:perl (params)
|
|
|
+ "Return list of perl statements assigning the block's variables"
|
|
|
+ (mapcar
|
|
|
+ (lambda (pair)
|
|
|
+ (format "$%s=%s;"
|
|
|
+ (car pair)
|
|
|
+ (org-babel-perl-var-to-perl (cdr pair))))
|
|
|
+ (mapcar #'cdr (org-babel-get-header params :var))))
|
|
|
+
|
|
|
;; helper functions
|
|
|
|
|
|
(defun org-babel-perl-var-to-perl (var)
|