There's more than one way to do things | |
PerlMonks |
tied file handle, extra variable?by live4tech (Sexton) |
on Jan 06, 2013 at 08:22 UTC ( [id://1011847]=perlquestion: print w/replies, xml ) | Need Help?? |
live4tech has asked for the wisdom of the Perl Monks concerning the following question: I wish a good start to the new year to everyone! I have been reading Damian Conway's Object Oriented Perl book. I have enjoyed it for the most part especially the beginning chapters where I think he does a good job of covering some perl basics. After that, the book is a bit of a struggle probably because I am new to perl and because this book is from 2000 and some of it is definitely out of date. In any case the following code has me perplexed:
I am confused by something in the subroutine TIEHANDLE. Here is what I think is going on: The class name ($class) is taken from the list of parameters passed to the subroutine. A hash (%args) is taken from the rest of the parameter list. Then $handle is assigned to an anonymous glob and therefore becomes a reference to a type glob. Then $impl is initialized as an object (blessed into the package) referencing an anonymous hash with a key "handle" and value gensym() (creating another reference to a glob). Then the method OPEN is called using $impl->OPEN (%args) The $impl object is then returned. My question is, why do we need the reference "$handle" in the line "my $handle = gensym()"? This reference is not used after this line. In fact a new glob reference is created in the next line in the hash which is blessed. Why do we need $handle at all here? Also I have read the gensym() perldoc and it looks like it is not used anymore although that document is difficult to understand.
Back to
Seekers of Perl Wisdom
|
|