人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Class::Accessor::Lvalue::Fast使用時のperlデバッガの利用方法について教えて下さい。
例えば以下の様なコードをステップ実行したいのですがエラーが出てしまいます。

---
package testmod;
use strict;
use warnings;
use Perl6::Say;
use base qw(Class::Accessor::Lvalue::Fast);
__PACKAGE__->mk_accessors(qw(params));

sub new {
my $class = shift;
my $self = $class->SUPER::new();

$self->params = {param1 => 10};
say $self->params->{param1};

return bless $self, $class;
}

1;
---

問題となっているのは、13行目です。12行目で設定した値を参照しているのですが、
このモジュールをnewするスクリプトをperl -dで実行した場合、
「Can't use an undefined value as a HASH reference at testmod.pm line 13.」とエラーが出てしまいます。
ところがデバッグオプションを指定しない場合は正常に動作します。
雰囲気としてはデバッガが独自で収集しているシンボルの登録が行われていない様なのですが、
何か解決・回避方法等はありますでしょうか。なおステップ実行の対象は自分が書いたものではないので、
コードを修正する以外の方法をお願いしたいです。


●質問者: taichino
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:AS AT base Class D.P
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● IlO10l0Il
●60ポイント

http://soft.bko.to/perl/A-E/Class-Accessor-Fast.html

コードの修正以外では難しいと思います。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ