{"type":"rich","categories":["Perl"],"image_url":null,"provider_name":"Hatena Blog","width":"100%","blog_title":"Islands in the byte stream (legacy)","description":"\u524d\u63d0\uff1aMoose::Role\u306fJava\u306eInterface\u306a\u3093\u304b\u3058\u3083\u306a\u3044 \u6700\u8fd1\uff0cRole\u3068\u3044\u3046\u306e\u306fC\u30d7\u30ea\u30d7\u30ed\u30bb\u30c3\u30b5\u306e#include\u30c7\u30a3\u30ec\u30af\u30c6\u30a3\u30d6\u306b\u8fd1\u3044\u3082\u306e\u306e\u3088\u3046\u306a\u6c17\u304c\u3057\u3066\u304d\u305f\u3002\u305d\u3057\u3066+X\u304c\u30e1\u30bd\u30c3\u30c9\u306e\u30c1\u30a7\u30c3\u30af\u6709\u7121\u3084\u30b3\u30f3\u30d5\u30ea\u30af\u30c8\u306e\u30c1\u30a7\u30c3\u30af\u3067\u3042\u308b\u3002 \u305f\u3068\u3048\u3070\uff0c\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u30b3\u30fc\u30c9\u3092\u8003\u3048\u3066\u307f\u308b\u3002 #!perl package Say; use Any::Moose '::Role'; requires 'to_string'; sub say{ my($self) = @_; print $self->to_string, \"\\n\"; } package MyClass; use Any::Moose\u2026","height":"190","provider_url":"https://hatena.blog","title":"Moose::Role = #include directive + X","published":"2009-10-05 12:38:54","author_url":"https://blog.hatena.ne.jp/gfx/","author_name":"gfx","html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Fgfx.hatenadiary.org%2Fentry%2F20091005%2F1254713934\" title=\"Moose::Role = #include directive + X - Islands in the byte stream (legacy)\" class=\"embed-card embed-blogcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;\"></iframe>","blog_url":"https://gfx.hatenadiary.org/","url":"https://gfx.hatenadiary.org/entry/20091005/1254713934","version":"1.0"}