emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Achim Gratz <Stromeko@nexgo.de>
To: emacs-orgmode@gnu.org
Subject: Re: bug in expansion of variables in babel Perl
Date: Sun, 24 Feb 2013 14:08:45 +0100	[thread overview]
Message-ID: <87mwutzwo2.fsf@Rainer.invalid> (raw)
In-Reply-To: 87mwuuyprm.fsf@mn.cs.uvic.ca

D M German writes:
[…]

Please leave the formats alone, if you change the number of parameters
there folks that use their own definitions won't know what hit them.
What you want is to prepend something to the body that Babel gives you,
so let-bind that result and use it.  You could even advise the function
and have it submit to your will without changing Org.

--8<---------------cut here---------------start------------->8---
(defun org-babel-perl-evaluate (session ibody &optional result-type)
  "Pass BODY to the Perl process in SESSION.
If RESULT-TYPE equals 'output then return a list of the outputs
of the statements in BODY, if RESULT-TYPE equals 'value then
return the value of the last statement in BODY, as elisp."
  (when session (error "Sessions are not supported for Perl"))
  (let ((body (concat org-babel-perl-preface ibody)))
    (case result-type
      (output (org-babel-eval org-babel-perl-command body))
      (value (let ((tmp-file (org-babel-temp-file "perl-")))
	       (org-babel-eval
		org-babel-perl-command
		(format org-babel-perl-wrapper-method body
			(org-babel-process-file-name tmp-file 'noquote)))
	       (org-babel-eval-read-file tmp-file))))))
--8<---------------cut here---------------end--------------->8---


BTW, now that I think some more about it: debugging Perl is much easier
than you seem to let on:

(setq org-babel-perl-command "perl -Mstrict -ne print").

This will echo the program sent to Perl in full glory into the output
block.


Regards,
Achim.
-- 
+<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+

Waldorf MIDI Implementation & additional documentation:
http://Synth.Stromeko.net/Downloads.html#WaldorfDocs

  reply	other threads:[~2013-02-24 13:09 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-02-24  9:16 bug in expansion of variables in babel Perl D M German
2013-02-24  9:45 ` dmg
2013-02-24 10:23   ` D M German
2013-02-24 13:08     ` Achim Gratz [this message]
2013-02-24 18:20       ` D M German
2013-02-24 12:17 ` Achim Gratz
2013-02-24 16:52   ` Eric Schulte
2013-02-24 17:15     ` Achim Gratz
2013-02-24 18:03     ` Achim Gratz
2013-02-25  9:44       ` D M German
2013-02-24 17:05 ` [PATCH] " Achim Gratz
2013-02-25  9:42   ` D M German
2013-02-25 12:48     ` Achim Gratz
2013-02-25 21:54       ` D M German
2013-02-26 11:13         ` Achim Gratz
2013-03-02 22:01   ` Achim Gratz

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87mwutzwo2.fsf@Rainer.invalid \
    --to=stromeko@nexgo.de \
    --cc=emacs-orgmode@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).