Perl's bless function, which turns a reference into an instance of an object, it typically called up as the last action in a constructor method. On today's
Perl for Larger Projects course, I was challenged as to when else it might be used. Here's an example - when loading a file of information into objects, in a method that's returning a whole list of objects:
sub fileload {
my ($class,$fname) = @_;
open (FH,$fname);
my @result;
while (<FH>) {
my ($thisclass,$breed,$age,$equiv) = split;
my %self;
$self{breed} = $breed;
$self{age} = $age;
$self{equiv} = $equiv;
push @result, bless \%self,$thisclass;
}
return @result;
}
Interesting, this code's also an example of the two parameter use of bless, where an object is being blessed into a class that's not got the same name as the current package.
(written 2005-03-15, updated 2006-06-05)
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articles
P218 - Perl - More Objects [227] Bellringing and Programming and Objects and Perl - (2005-02-25)
[531] Packages in packages in Perl - (2005-12-16)
[588] Changing @INC - where Perl loads its modules - (2006-02-02)
[592] NOT Gone phishing - (2006-02-05)
[656] Think about your design even if you don't use full UML - (2006-03-24)
[831] Comparison of Object Oriented Philosophy - Python, Java, C++, Perl - (2006-08-13)
[930] -> , >= and => in Perl - (2006-11-18)
[1217] What are factory and singleton classes? - (2007-06-04)
[1320] Perl for Larger Projects - Object Oriented Perl - (2007-08-25)
[1435] Object Oriented Programming in Perl - Course - (2007-11-18)
[1664] Example of OO in Perl - (2008-06-03)
[1665] Factory method example - Perl - (2008-06-04)
[1819] Calling base class constructors - (2008-10-03)
[1949] Nuclear Physics comes to our web site - (2008-12-17)
[2427] Operator overloading - redefining addition and other Perl tricks - (2009-09-27)
[2651] Calculation within objects - early, last minute, or cached? - (2010-02-26)
[2717] The Multiple Inheritance Conundrum, interfaces and mixins - (2010-04-11)
[2811] Igloos melt in the summer, but houses do not - (2010-06-15)
[2876] Different perl examples - some corners I rarely explore - (2010-07-18)
[2972] Some more advanced Perl examples from a recent course - (2010-09-27)
[3097] Making Perl class definitions more conventional and shorter - (2010-12-20)
[3098] Learning Object Orientation in Perl through bananas and perhaps Moose - (2010-12-21)
[3377] What do I mean when I add things in Perl? - (2011-08-02)
[3581] Perl - calls to methods that use => - what do they mean? - (2012-01-16)
[3941] Building an object based on another object in Perl - (2012-12-03)
[4096] Perl design patterns example - (2013-05-20)
[4098] Using object orientation for non-physical objects - (2013-05-22)
[4356] Object factories in C++, Python, PHP and Perl - (2014-12-19)
[4366] Changing what operators do on objects - a comparison across different programming languages - (2014-12-26)
P213 - Perl - Creating your own Classes [975] Answering ALL the delegate's Perl questions - (2006-12-09)
[983] Blessing in Perl / Member variable in Ruby - (2006-12-14)
[1864] Object Oriented Perl - First Steps - (2008-11-01)
[1925] Introduction to Object Oriented Programming - (2008-12-06)
[2169] When should I use OO techniques? - (2009-05-11)
[2834] Teaching examples in Perl - third and final part - (2010-06-27)
[2877] Further more advanced Perl examples - (2010-07-19)
[2969] What does blessing a variable in Perl mean? - (2010-09-24)
[3059] Object Orientation in an hour and other Perl Lectures - (2010-11-18)
[3833] Learning to use existing classes in Perl - (2012-08-10)
[4607] Classes and object - first steps in Perl 6 - (2016-01-02)
Some other Articles
We dont stand stillAn easy way outUse me, but use me effectivelyExtreme trainingWhen to bless a Perl variableI'm not blogging itGetting your examples, my examples and the data files after your coursenew 'Perl on the Web' exampleSatisfaction of trainingDress for training