Wenn Zeichen, die der Syntax der Net.Data-Sprachkonstrukte entsprechen, im Abschnitt für die Sprachanweisungen eines FUNCTION-Blocks als Teil eines syntaktisch gültigen, eingebetteten Programmcodes (wie für REXX oder Perl) verwendet werden, können sie als Net.Data-Sprachkonstrukte fehlinterpretiert werden und so Fehler oder unvorhersehbare Ergebnisse in einem Makro verursachen.
Zum Beispiel könnte eine Perl-Funktion die Begrenzungszeichen für COMMENT-Blöcke (%{) verwenden. Bei der Ausführung des Makros werden die Zeichen %{ als Anfang eines COMMENT-Blocks interpretiert. Net.Data sucht dann nach dem Ende des COMMENT-Blocks, das von Net.Data am Ende des FUNCTION-Blocks erwartet wird. Net.Data sucht dann nach dem Ende des FUNCTION-Blocks und gibt, wenn das Ende nicht gefunden wird, einen Fehler aus.
Mit einer der folgenden Methoden können Sie die Begrenzungszeichen für COMMENT-Blöcke sowie alle anderen Net.Data-Sonderzeichen als Teil Ihres eingebetteten Programmcodes verwenden, ohne daß sie von Net.Data als Sonderzeichen interpretiert werden:
Die folgende Perl-Funktion enthält als Teil ihrer Perl-Sprachanweisungen zum Beispiel Zeichen, die eine COMMENT-Blockbegrenzung %{ darstellen:
%function(DTW_PERL) func() { ... for $num_words (sort bynumber keys %{ $Rtitles{$num} }) { &make_links($Rtitles{$num}{$num_words}); } ... %}
Um sicherzustellen, daß Net.Data die Zeichen %{ als Perl-Quellencode und nicht als eine COMMENT-Blockbegrenzung von Net.Data interpretiert, sollte die Funktion auf eine der folgenden Weisen umgeschrieben werden:
%function(DTW_PERL) func() { %EXEC{ func.prl %} %}
%define percent_openbrace = "%{" %function(DTW_PERL) func() { ... for $num_words (sort bynumber keys $(percent_openbrace) $Rtitles{$num} }) { &make_links($Rtitles{$num}{$num_words}); } ... %}