यह देखते हुए कि भूमिकाएं फ्यूबल और बारबल दोनों को परिभाषित किया गया है, मैं कैसे कहूं कि कक्षा फूबर फ्यूबल और बारबल है? मेरे पास कोईमैं कैसे घोषणा करूं कि एक वर्ग MooseX :: घोषित करने के साथ एक से अधिक भूमिकाओं का उपयोग करता है?
#!/usr/bin/perl
use MooseX::Declare;
role Fooable {
method foo { print "foo\n" }
}
role Barable {
method bar { print "bar\n" }
}
class Foo with Fooable {}
class Bar with Barable {}
package main;
use strict;
use warnings;
Foo->new->foo;
Bar->new->bar;
कह समस्या है लेकिन जोड़ने के लिए जब मैं कोशिश
class FooBar with Fooable, Barable {}
मैं उपयोगी से भी कम समय त्रुटि
expected option name at [path to MooseX/Declare/Syntax/NamespaceHandling.pm] line 45
बस अपने आप को साबित करने के लिए कि मैं पागल नहीं हूँ, मैं मूस का उपयोग कर इसे फिर से लिखता हूं। इस कोड काम करता है (लेकिन पाप से भद्दा है):
#!/usr/bin/perl
package Fooable;
use Moose::Role;
sub foo { print "foo\n" }
package Barable;
use Moose::Role;
sub bar { print "bar\n" }
package Foo;
use Moose;
with "Fooable";
package Bar;
use Moose;
with "Barable";
package FooBar;
use Moose;
with "Fooable", "Barable";
package main;
use strict;
use warnings;
Foo->new->foo;
Bar->new->bar;
FooBar->new->foo;
FooBar->new->bar;
हां, दस्तावेज कहता है 'साथ (@roles) '। एकमात्र प्रश्न सूची में शब्दकोष के बारे में होता। –
आप किस दस्तावेज़ का उपयोग कर रहे हैं? MooseX :: डॉक्स घोषित करें 'भूमिका के साथ कक्षा फू {...} '। मूस डॉक्स कहते हैं, '(@roles)' के साथ, लेकिन फिर सभी उदाहरण 'ब्रेक करने योग्य' के साथ हैं; ' –