in reply to Re^2: Moose reading file line by line
in thread Moose reading big file line by line

It would be easier if you told me where Perl reports a syntax error.

The following is not really valid Perl:

return <$self->handler>;

See readline resp. I/O-Operators about how to use a more complex expression as a filehandle. You could also just simplify your code to the following construct:

sub readLine { my $self = shift; my $fh= $self->handler; return <$fh>; }

I'm not sure whether your open $self->handler actually doess the right thing, but then, I don't know how Moose proposes you store filehandles and what the 'FileHandle' type is supposed to do. I presume that $self->handler does not return a reference to the actual filehandle, so your open might just be useless because you never store the actual opened filehandle back into the object.

Replies are listed 'Best First'.
Re^4: Moose reading file line by line
by learning.moose (Novice) on Apr 27, 2015 at 13:37 UTC

    You are right in everything you have written. So to make it work should I make a reference to $fh and that reference to be $self->handler?

      I would simply use whatever Moose allows as getters and setters and use the setter to store the filehandle:

      sub openHandler { open my $fh, '<', $filename or die "$filename: $!"; $self->set_filehandle($fh); };