MooseX::GlobRef::Role::Object - An object role for MooseX::GlobRef
Moose::Util::MetaRole::apply_base_class_roles( for_class => $caller, roles => [ 'MooseX::GlobRef::Role::Object' ], ); package My::IO::File; use Moose; extends 'Moose::Object', 'IO::File'; with 'MooseX::GlobRef::Role::Object'; has 'file' => ( is => 'ro', isa => 'Str', required => 1 ); has 'mode' => ( is => 'ro', isa => 'Str', default => 'r' ); sub BUILD { my ($fh) = @_; $fh->open( $fh->file, $fh->mode ); }; sub slurp { my ($fh) = @_; local $/ = undef; return $fh->getline; }; my $io = My::IO::File->new( file => '/etc/passwd' ); print "::::::::::::::\n"; print $io->file, "\n"; print "::::::::::::::\n"; print $io->slurp;
This is a role for Moose::Object which is applied by MooseX::GlobRef. It allows to store Moose object in glob reference of file handle.
The MooseX::GlobRef package should be used instead for Moose classes but the MooseX::GlobRef::Role::Object can be helpful if you want to extend non-Moose classes like IO::File or File::Temp.
MooseX::GlobRef::Role::Object
Dumps the object itself and also a hash slot of glob reference of this object. It returns an array or string depended on context.
See Moose::Object.
MooseX::GlobRef, Moose::Object, Moose::Role.
Piotr Roszatycki <dexter@cpan.org>
Copyright (c) 2007, 2008, 2009, 2010 Piotr Roszatycki <dexter@cpan.org>.
This is free software; you can redistribute it and/or modify it under the same terms as perl itself.
See http://dev.perl.org/licenses/artistic.html
To install MooseX::GlobRef, copy and paste the appropriate command in to your terminal.
cpanm
cpanm MooseX::GlobRef
CPAN shell
perl -MCPAN -e shell install MooseX::GlobRef
For more information on module installation, please visit the detailed CPAN module installation guide.