【问题标题】:Perl Mason custom package accessPerl Mason 自定义包访问
【发布时间】:2014-08-17 09:31:45
【问题描述】:

我有一个纯 perl 服务类 PlainData,它从远程文件系统检索一些纯数据。生成一些文本和状态标志(错误、警告)的包 PlainData。我如何(放置、链接)它到 perl mason web 上下文中。我会这样做:

<%init>
use PlainData;
my $stn = $ARGS{"STN"};
my $yr  = $ARGS{"YR"};
my $mo  = $ARGS{"MO"};
my $dy  = $ARGS{"DY"};
...do something with $stn,$yr,$mo,$dy,
my $plainDataHandler = new PlainData(); 
my ($status, $text) = $plainDtaHandler->listStationsByDay( $stn, $yr, $mo, $dy); 
if ($status>10) {
  print "<h1>ERROR REQUEST DATA STATIONS</h1>\n";
  print $text;
} else {
  print $text;
}
</%init>

我也试过了

my $plainDataHandler = $m->comp('/var/perl/PlainData.pm');

【问题讨论】:

    标签: perl mason


    【解决方案1】:

    试试

    % if($status>10) {
    <h1>ERROR REQUEST DATA STATIONS</h1>
    % }
    <% $text %>
    
    % #some link
    <a href="/some/url"><% $text %></a>
    
    <%init>
    ...
    my ($status, $text) = $plainDtaHandler->listStationsByDay( $stn, $yr, $mo, $dy);
    </%init>
    

    【讨论】:

    • 感谢您的回答。但该脚本适用于打印语句。问题的重点是使用声明。如果我在 apache 配置中使用 perlOptions -I 开关,PlainData 类将出现在脚本中。但是当我启动 apache 服务时,缓存会忽略 PlainData.pm 的任何更正。
    猜你喜欢
    • 1970-01-01
    • 2015-03-14
    • 1970-01-01
    • 1970-01-01
    • 2022-10-13
    • 2012-10-03
    • 1970-01-01
    • 2019-03-02
    • 2013-05-04
    相关资源
    最近更新 更多