小编Eth*_*her的帖子

如何设置本地CPAN镜像?

设置和维护本地CPAN镜像需要什么?我应该注意哪些脚本和最佳实践?

perl administration cpan

8
推荐指数
5
解决办法
1万
查看次数

处理嵌入式系统中的堆栈溢出

在嵌入式软件中,如何以通用方式处理堆栈溢出?我遇到了一些处理器,它像硬件一样保护最近的AMD处理器.维基百科上有一些技术,但那些是真正实用的方法吗?

任何人都可以提供一个明确的建议方法,适用于当今的32位嵌入式处理器吗?

stack-overflow embedded error-handling

8
推荐指数
2
解决办法
4643
查看次数

如何在不安装新Perl的情况下安装或升级最新Perl中的CPAN模块?

我想安装一个Perl模块(在本例中为FindBin),但由于它包含在Perl 5.10.1发行版中,所以cpan想为我安装Perl 5.10.有没有办法只安装模块cpan

我能看到的唯一选择是直接从源代码安装,这看起来有点粗糙,因为没有单独的软件包(例如Makefile.PL,等等),只是裸.pm文件.

由于这是一个只有一个文件的小模块,在这种情况下它是可行的,但如果我想安装一个更大的包呢?

编辑:这是从原来的问题有点一边,但说话的模块的一般问题被包装以Perl分布:我发现,"独立" FindBin(版本1.49)有一个语法错误,所以我取回1.50版本出来的Perl 5.10.1发行版...但是由于模块现在作为Perl 5.10的一部分在CPAN上列出,我无法找到描述此delta中更改/修复内容的CHANGES文件.我是否应该进入开发者存储库来提取这些信息是否合理?)


编辑2.好的,这是一个更好的例子.在Perl 5.8.8上我有1.04版本的Carp.但是,我看到Perl 5.10.1与1.11版打包在一起.有没有办法让CPAN为我安装最新版本的Carp而不会拖延所有的Perl 5.10.1?除了perl 5.10.1安装之外,我甚至找不到CPAN上Carp模块的链接.

perl installer cpan distribution perl-module

8
推荐指数
1
解决办法
2141
查看次数

有条件的运营商问题

我在使用条件运算符获取对象的引用时遇到了一些麻烦.我有一个类似于这样的设置:

class D
{
    virtual void bla() = 0;
};

class D1 : public D
{
    void bla() {};
};

class D2 : public D
{
    void bla() {};
};

class C
{
public:
    C()
    {
        this->d1 = new D1();
        this->d2 = new D2();
    }

    D1& getD1() {return *d1;};
    D2& getD2() {return *d2;}
private:
    D1 *d1;
    D2 *d2;
};

int main()
{    
    C c;    
    D& d = (rand() %2 == 0 ? c.getD1() : c.getD2());    
    return 0;    
}
Run Code Online (Sandbox Code Playgroud)

编译时,这给了我以下错误:

WOpenTest.cpp: …
Run Code Online (Sandbox Code Playgroud)

c++ conditional-operator

8
推荐指数
1
解决办法
2035
查看次数

Java?:vb.net中的运算符

?:在.net中是否有等效的运算符?例如在java中我可以这样做:

retParts[0] = (emailParts.length > 0) ? emailParts[0] : "";
Run Code Online (Sandbox Code Playgroud)

而不是

if (emailParts.length > 0) {
    retParts[0] = emailParts[0];
} else {
    retParts[0] = "";
}
Run Code Online (Sandbox Code Playgroud)

我希望能够在VB.NET中做类似的事情.

java vb.net language-features conditional-operator

8
推荐指数
1
解决办法
1651
查看次数

使用Log :: Log4perl创建自记录模块

有没有办法使用Log :: Log4perl创建一个智能自我记录模块,即使没有调用脚本没有初始化Log4perl,它也会将其操作记录到文件中?据我从文档中可以看出,使用Log4perl的唯一方法是从配置中运行脚本初始化它,然后实现Log4perl调用的模块根据调用者的Log4perl配置自行记录.

相反,我希望模块为Log4perl提供默认的初始化配置.这将为模块的类别提供默认文件追加器.然后,我可以通过在调用者中使用不同的配置启动Log4perl来覆盖此行为,如果需要,所有内容都可以正常工作.

这种防御性日志记录行为是否可行,或者我是否需要依赖于在调用我想要记录的模块的每个.pl脚本中启动Log4perl?

perl logging log4perl

8
推荐指数
1
解决办法
1757
查看次数

如何检查变量是否在perl中声明?

use strict;在perl中使用,并使用以下语句.

unless(defined($x)){
      print "Not defined";
}
Run Code Online (Sandbox Code Playgroud)

其中$ x未在任何地方声明.所以我希望它打印" Not defined"但它会返回一个错误

Global symbol "$x" requires explicit package name at *********** in line 15.
Run Code Online (Sandbox Code Playgroud)

perl

8
推荐指数
3
解决办法
6225
查看次数

Perl6字符串强制运算符〜不喜欢前导零

我正在玩Rakudo Star 2015.09.

如果我尝试将前导零的整数字符串化,编译器会发出警告:

> say (~01234).WHAT
Potential difficulties:
    Leading 0 does not indicate octal in Perl 6.
    Please use 0o123 if you mean that.
    at <unknown file>:1
    ------> say (~0123<HERE>).WHAT
(Str)
Run Code Online (Sandbox Code Playgroud)

我想也许我可以通过将整数值赋给变量来帮助编译器,但获得了相同的结果:

> my $x = 01234; say (~$x).WHAT
Potential difficulties:
    Leading 0 does not indicate octal in Perl 6.
    Please use 0o1234 if you mean that.
    at <unknown file>:1
    ------> my $x = 01234<HERE>; say (~$x).WHAT
(Str)
Run Code Online (Sandbox Code Playgroud)

我知道这是一个愚蠢的例子,但这是设计的吗?如果是这样,为什么?

我怎么能抑制这种警告信息呢?

coercion perl6

8
推荐指数
1
解决办法
145
查看次数

冒号在Perl中意味着什么?

冒号在以下Perl程序中意味着什么?

MAIN: {
    print "Hello\n";
}
Run Code Online (Sandbox Code Playgroud)

syntax perl

7
推荐指数
2
解决办法
3632
查看次数

如何访问我的Moose角色所应用的模块的元类?

我正在使用Moose 角色在类中的某些存取方法中应用一些包装器行为.我想将此角色应用于许多模块,每个模块都有一组不同的属性,我想要包装它们的访问器.有没有办法从角色中访问正在应用的模块的元类?即是这样的:

package My::Foo;
use Moose;
with 'My::Role::X';

has [ qw(attr1 attr2) ] => (
    is => 'rw', # ...
);

has 'fields' => (
    is => 'bare', isa => 'ArrayRef[Str]',
    default => sub { [qw(attr1 attr2) ] },
);
1;

package My::Role::X;
use Moose::Role;

# this should be a Moose::Meta::Class object
my $target_meta = '????';

# get Class::MOP::Attribute object out of the metaclass
my $fields_attr = $target_meta->find_attribute_by_name('fields');

# extract the value of this attribute - should be …
Run Code Online (Sandbox Code Playgroud)

perl roles moose

7
推荐指数
1
解决办法
1377
查看次数