2
有兩個組件:test.mc
我需要調用組件name.mi
中定義的兩種方法。如何調用Mason組件中定義的多個方法?
組件/name.mi
<%class>
has 'name';
</%class>
<%method text>
<pre>Some text here</pre>
</%method>
<%method showname>
NAME: <% $.name %>
</%method>
組件/test.mc
<%init>
my $namecomp = $m->load('name.mi', name=>'john');
</%init>
<% $namecomp->text %>
<% $namecomp->showname %>
運行/test.mc
:
- 的
$namecomp->text
方法的工作原理。 - 的
$namecomp->showname
不工作,給這個錯誤:
Can't use string ("MC0::name_mi") as a HASH ref while "strict refs" in use at accessor MC0::name_mi::name (defined at /.../testpoet/comps/name.mi line 2) line 5
的問題:
- 誰能告訴我一個例子,如何正確使用
$m->load($path)
? - 爲什麼不能從
showname method
訪問$.name
- 那麼,如何調用name.mi
組件中定義的多個方法?
例如,與想要實現的東西在純perl的什麼都(schematicaly)寫入下一個:
package Myapp::Name;
has 'name';
method text() {
print "some text";
}
method showname {
print "Name: " . $self->name();
}
,並用它作爲:
my $namecomp = Myapp::Name->new(name => 'John');
$namecomp->text;
$namecomp->showname;
THANK YOU VERY MUCH! :) – kobame