perl-embperl mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From <ckas...@eplsite.org>
Subject I found one way to get global subs..what do you think?
Date Mon, 04 Aug 2003 10:08:01 GMT
Hi:

I found one way to get global subs in embperl.
This is not the best way to do it but it works. The best solution is that
embperl handle this.
The bad news with this way to get global subs is that you will need to
evaluate the same code if you need it in different files loaded, the good
news is that you will load your subs only once.

Note. If you test this files, be carefully when copy the text. When i tested
sending to my self i found it is better to write them again and not copy.

Sorry for the long text.

Carlos Kassab

################ file index.epl ################
[- $globalp = shift; -]
[- $optRawInput = 1 -]
[-
    $globalp->{globalsubs} = "";
    $mysubsfile =
substr($ENV{'PATH_TRANSLATED'},0,length($ENV{'PATH_TRANSLATED'})-10)."subs.epl";    open(MYSUBS,
$mysubsfile)
        while(<MYSUBS>)  {    $globalp->{globalsubs} =
$globalp->{globalsubs}.$_;   }
        close(MYSUBS);

    $globalp->{bgcolor1} = "#efefef";
    $globalp->{bgcolor2} = "#438fff";
    eval $globalp->{globalsubs};
-]

<html> <head><title> test </title></head><body>
[-
    local $escmode = 0;
    &OpenTable($globalp->{bgcolor1},$globalp->{bgcolor2});
    &mytitle("<big>My main title</big>");
    &CloseTable;
-]
<br> [- Execute ('somefile.epl') -] </body></html>



################ file subs.epl ################

sub mytitle {    my $title = shift; print OUT "$title"; }

sub myfooter {   $footertext  = shift;  print OUT "<u>$footertext</u>"; }

sub OpenTable
{
    $bgcolor1 = shift;   $bgcolor2 = shift;

    print OUT "<table width=\"100%\" border=\"0\" cellspacing=\"1\"
cellpadding=\"0\" bgcolor=\"$bgcolor2\"><tr><td>\n"
             ."<table width=\"100%\" border=\"0\" cellspacing=\"1\"
cellpadding=\"8\" bgcolor=\"$bgcolor1\"><tr><td>\n";
}

sub CloseTable {    print OUT "</td></tr></table></td></tr></table>\n";
}

################# file somefile.epl ##############
[$ syntax EmbperlBlocks ASP $]
<%
    $globalp = shift;
    local $escmode = 0;
    eval $globalp->{globalsubs};
    print OUT $@ if( $@ );
    &OpenTable($globalp->{bgcolor1},$globalp->{bgcolor2});
    &mytitle("<b>my subtitle</b>");
    &CloseTable;
%>
<p>some body text here.</p>
<% &myfooter("footer text"); %>






---------------------------------------------------------------------
To unsubscribe, e-mail: embperl-unsubscribe@perl.apache.org
For additional commands, e-mail: embperl-help@perl.apache.org


Mime
View raw message