Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things

Re: Moose and File::Temp

by gsiglet (Acolyte)
on Nov 19, 2012 at 13:53 UTC ( #1004542=note: print w/replies, xml ) Need Help??

in reply to Moose and File::Temp

Are your remarks relevant to the following issue as well?
package test; use Moose; use FileHandle; has 'fh' => ( is => 'rw', isa => 'FileHandle', lazy => 1, default => sub { FileHandle->new }, ); sub BUILD { my $self = shift; open $self->{fh} , "<", "temp.txt"; while (<$self->{fh}>) { print $_; } }
This also throws an error:
Syntax error at line 17, near "<$self->{fh"

Replies are listed 'Best First'.
Re^2: Moose and File::Temp
by tobyink (Abbot) on Nov 19, 2012 at 14:05 UTC

    You may have some difficulty with isa => 'FileHandle' because while FileHandle is a core Perl module, Moose uses the type constraint string "FileHandle" to refer to unblessed Perl file handles - i.e. not objects created by the FileHandle package.

    open my $fh , "<", "temp.txt"; $self->fh($fh); while (<$fh>) { print $_; }
    perl -E'sub Monkey::do{say$_,for@_,do{($monkey=[caller(0)]->[3])=~s{::}{ }and$monkey}}"Monkey say"->Monkey::do'
      So it is impossible to use  while(<$self->{IamAfileHandleAttribute}>) { ... } > to read a file, outside my constructor. I guess I will have to do:
      my $temp_fh = $self->{IamAfileHandleAttribute}; while (<$temp_fh>) { ... }
        So it is impossible to use while(<$self->{IamAfileHandleAttribute}>) { ... } > to read a file
        no, it's not really impossible. you can just use readline instead of the diamond operator.
        while (readline $self->{IamAfileHandleAttribute}) {

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1004542]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others about the Monastery: (6)
As of 2018-03-17 07:20 GMT
Find Nodes?
    Voting Booth?
    When I think of a mole I think of:

    Results (223 votes). Check out past polls.