小编mak*_*nai的帖子

从'use fields'pragma获取字段列表?

所以我熟悉Perl中的字段pragma,可以用来限制存储在类中的字段:

package Fruit;
use fields qw( color shape taste );

sub new {
  my ( $class, $params ) = @_;
  my $self = fields::new( $class ) unless ref $class;
  foreach my $name ( keys %$params ) {
    $self->{ $name } = $params->{ $name };
  }
  return $self;
}
Run Code Online (Sandbox Code Playgroud)

一旦我在顶部声明了字段,我怎么能回到列表,说因为我想动态生成访问器?是keys %FIELDS唯一的方法吗?

其次,是否有一种更有效的方法来预先填充构造函数中的字段,而不是像上面那样循环并分配每个参数?

perl

6
推荐指数
1
解决办法
800
查看次数

如何取消引用hashref常量?

假设我有一个hashref常量,如下所示:

use constant DOGS => {
    Lassie => 'collie',
    Benji  => 'mutt',
    Scooby => 'great dane',
    Goofy  => '???'
};
Run Code Online (Sandbox Code Playgroud)

我怎样才能正确地取消引用它来说出来......它们的关键是什么?

warn ref DOGS; # HASH at untitled line 12.
warn keys( %{DOGS} ); # Warning: something's wrong (empty list)
warn keys( DOGS ); # Type of arg 1 to keys must be hash (not constant item)
Run Code Online (Sandbox Code Playgroud)

以下是我能够使它工作的唯一方法:

my $dogs = DOGS;
warn keys( %$dogs ); # LassieBenjiGoofyScooby at untitled line 15.
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

perl

5
推荐指数
2
解决办法
1792
查看次数

EventMachine - 你怎么知道你是否落后?

我正在研究使用EventMachine驱动的twitter-stream ruby​​gem来跟踪和捕获推文.我对整个编程事物都很陌生.如何判断我在事件循环中正在进行的处理是否会导致我落后?有一种简单的方法可以检查吗?

ruby twitter eventmachine

5
推荐指数
2
解决办法
450
查看次数

有选择地沉默JRuby警告

我在JRuby下使用ruby-mysql库并获得以下警告:

/mysql/protocol.rb:530 warning: GC.disable does nothing on JRuby

有没有办法让JRuby停止抱怨这个?

ruby warnings jruby

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

标签 统计

perl ×2

ruby ×2

eventmachine ×1

jruby ×1

twitter ×1

warnings ×1