Accessing Perl subs from deltaFSD is reasonably straightforward.
Select Other Functions -> Perl and you will get a file selection dialog box.
You need to select the (top level) Perl script you wish to use.
You will then get a function configuration dialog box where you need to specify the name of the Perl sub which will be used for the function and the number of inputs and outputs.
Processing of Perl subs is just like any other deltaFSD function - if an input changes the sub will be called and its outputs used by any dependant functions.
You can create as many deltaFSD functions as you like each tied to a sub in (or referenced from) your top level script.
If you select Other Functions -> Perl again for another Perl sub you only get the function configuration dialog box.
You should get something like:
Each deltaFSD project runs only a single Perl interpreter.
Each interpreter can only have a single top level script.
This restriction is eased a little by deltaFSD incorporating the Perl Dynaloader so that you can access the full range of Perl scripts and modules.
You can destroy the interpreter using the pull down menu from any Perl function.
All the existing Perl functions will become non-functional but you can then select a new Perl top level file.
If you modify the Perl script you need to destroy and restart the interpreter.
All this means that the Perl world in deltaFSD is divided into:
use Math::Trig; # this allows direct access to all of the Trig module's functions - eg cosh print "Interpreting\n"; # this will be executed when the interpreter is created (when the first sub is defined in deltaFSD). sub add { my ($a,$b) = @_; ($a+$b); } sub mult # simply provide the name "mult" to incorporate this { my ($a,$b) = @_; ($a*$b); } sub acos { cos (@_); # to access cos (and any other builtins) you need a wrapper sub } sub sqr_and_sqrt { my ($a) = @_; ($a*$a, sqrt($a)); # a sub with multiple return values }