パラメータをハッシュとして渡したい perl サブルーチンがあります (目的は、パラメータ 'iconsize' に応じて css を含めることです)。
私は呼び出しを使用しています:
get_function_bar_begin('iconsize' => '32');
サブルーチン get_function_bar_begin の場合:
use strict;
...
sub get_function_bar_begin
{
my $self = shift;
my %template_params = %{ shift || {} };
return $self->render_template('global/bars /tmpl_incl_function_bar_begin.html',%template_params);
}
これによりエラー メッセージが表示されるのはなぜですか。
実行モード 'start' の実行中にエラーが発生しました: undef エラー - CheckBar.pm の行 334 で「strict refs」が使用されている間、文字列 (「iconsize」) を HASH ref として使用できません
私はここで何か間違っていますか?データ ('iconsize') をハッシュとして送信する別の方法はありますか?
(私はまだ Perl に慣れていません)
編集:私のために働いた解決策。私は呼び出しを変更しませんでしたが、私の機能:
sub get_function_bar_begin
{
my $self = shift;
my $paramref = shift;
my %params = (ref($paramref) eq 'HASH') ? %$paramref : ();
my $iconsize = $params{'iconsize'} || '';
return $self->render_template('global/bars/tmpl_incl_function_bar_begin.html',
{
'iconsize' => $iconsize,
}
);
}