小编use*_*879的帖子

Perl的SQLite3:{NAME}无法正常工作?

这是我正在处理的sqlite数据库应用程序的代码片段:

my $query = "select * from pins";
my $sth = $dbh->prepare($query) or die "Couldn't prep: $DBI::errstr";
$sth->execute or die "Exec problem: $DBI::errstr";
my $result = $sth->fetchall_arrayref();
my $names = $sth->{NAME} or die "Name failed: $DBI::errstr";
foreach my $row (@$res) {
    # ... do some row-specific things
    foreach my $cell (@$row) {
        # ... do some cell-specific things
    }
}
Run Code Online (Sandbox Code Playgroud)

查询触发就好了,实际上它会返回正确的结果.但是,由于某种原因,这条线,

my $names = $sth->{NAME} or die "Name failed: $DBI::errstr";
Run Code Online (Sandbox Code Playgroud)

失败.{NAME}永远不会返回我期望的arrayref.如果我把die子句删掉,它运行正常(当然,无论我在哪里使用$ name,都会抛出预期的"使用未初始化的值"警告).

是否有一些明显的原因我错过了{NAME}不会触发,因为查询工作得很好?

谢谢!

sqlite perl dbi

4
推荐指数
1
解决办法
163
查看次数

脑筋急转弯:用C#类定制逻辑字符串

所以,我的基本设置是这样的:我有项目,限于不同的类.这些项目具有效果,也限于不同的类别.例如,我可能有一个只能由精灵操纵的物品,而另一个物品可能会被所有人操纵,但会为精灵提供特定的奖励/效果.

这是一个限制类:

public class Restriction {
    private int _base_id = 0;
    private bool _qualify = true;
    public Restriction() { }
    // ... Base_ID and Qualify getters and setters here
    public virtual bool Check(int c) {
        if(_qualify) { return c == _base_id; }
        else { return c != _base_id; }
}
Run Code Online (Sandbox Code Playgroud)

Restriction类的子级可能是RaceRestriction,它只覆盖构造函数:

public RaceRestriction(reference.races r, bool qual) {
    Base_ID = (int)r; Qualify = qual;
}
Run Code Online (Sandbox Code Playgroud)

reference.races r是参考文件中的枚举.这里的想法是我可以将这种"限制"语法扩展到我在参考文件中定义的任何类 - 所以我可以对种族,类,统计数据进行限制,无论我需要什么.

因此,当我定义(例如)一个项目时,这一切都会达到高潮,这个项目对谁可以装备有限制.

下面是Equipment类的一个片段,我在这里定义了一个设备供以后使用(希望它是可读的):

public Equipment() { 
    ...
    _master_equipment_list[1] = new Equipment {
        Name …
Run Code Online (Sandbox Code Playgroud)

c# logic inheritance

3
推荐指数
1
解决办法
190
查看次数

标签 统计

c# ×1

dbi ×1

inheritance ×1

logic ×1

perl ×1

sqlite ×1