小编vij*_*hal的帖子

Perl:模板工具包的替代品

我一直在使用模板工具包扩展现有的域特定语言(verilog)超过3年.虽然整体而言我很满意,但主要的刺激是当出现语法/ undef错误时,错误消息不包含正确的行号信息来调试错误.

例如,我会得到一条消息,指示"0未定义",因为我将使用[%x.0%]和文件中多个位置的类似结构,确定哪一行有问题变得困难.

TT3似乎无限期地在开发中

我对大师的问题是有更好的替代TT.我的要求是

  1. 支持复杂的数据结构
  2. 良好的错误报告和调试功能.
  3. 稳定且经过验证(没有alpha/beta级引擎)
  4. 可扩展(插件等)
  5. 不应限于给定的语言(HTML等)
  6. 支持IF/Else,循环(foreach while),循环索引等.
  7. 优选perl
  8. 从模板中支持数据转储器或等效插件是一个优点

perl templates template-engine template-toolkit

15
推荐指数
4
解决办法
5764
查看次数

列中的R grep模式

我有一个数据框,其中一列是模式,另一列是字符串。我想遍历每行,检查行的字符串是否包含行的模式,并用我尝试过的T / F状态更新Matches列

df<- df%>%mutate(Matches=grepl(pattern,string))
Run Code Online (Sandbox Code Playgroud)

并得到以下错误。

参数'pattern'的长度> 1,并且仅使用第一个元素

我知道在上面的代码grepl中尝试读取模式列的所有行而不是当前行。

有没有执行此功能的函数,或者我需要使用for循环并手动遍历每一行吗?

r

2
推荐指数
1
解决办法
4181
查看次数

Perl:使用Moose进行递归对象实例化

在下面的示例代码中,我定义了一个Person可以具有相同类的子对象的类.

当我调用该printTree方法时,我期待以下输出

Sam    Ram    Geeta
Run Code Online (Sandbox Code Playgroud)

我所看到的是

SamRamRamRamRamRamRamRamRamRamRamR.....
Run Code Online (Sandbox Code Playgroud)

关于我做错了什么以及如何实现目标的任何提示?

package Person;

use Moose;

has name => ( is => 'ro' );

my @kids;

sub addChild {
    my ( $self, $name ) = @_;
    my $k = Person->new( name => $name );
    push @kids, $k;
    return $k;
}

sub printTree {
    my $self = shift;
    print $self->name;
    $_->printTree foreach ( @kids );
}



no Moose;

package main;

my $s = Person->new( name => "Sam" );
my $r = …
Run Code Online (Sandbox Code Playgroud)

recursion perl moose

0
推荐指数
1
解决办法
55
查看次数