use strict;
use warnings;
use Employee;
use EmployeeList;
use Data::Dump 'pp';
my $E1 = new Employee( {name=>'George', hours=>40, hourlywage=>50.00} );
print "What does Data::Dump see for my Employee?\n";
pp($E1);
print "\nHow does it print?\n";
$E1->print_student();
####
$ perl classes.pl
What does Data::Dump see for my Employee?
bless({ hourlywage => 50, hours => 40, name => "George" }, "Employee")
How does it print?
##
##
$ perl classes.pl
What does Data::Dump see for my Employee?
bless({ hourlywage => 50, hours => 40, name => "George" }, "Employee")
How does it print?
Employee info: name: George hours: 40 wage: 50
##
##
use strict;
use warnings;
use Employee;
use EmployeeList;
use Data::Dump 'pp';
my $E1 = new Employee( {name=>'George', hours=>40, hourlywage=>50.00} );
print "What does Data::Dump see for my Employee?\n";
pp($E1);
print "\nHow does it print?\n";
print $E1->format();
print "\nLet's create a couple more employees and print them:\n";
my $E2 = new Employee( {name=>'Ellen', hours=>30, hourlywage=>35.00} );
my $E3 = new Employee( {name=>'Phideaux', hours=>10, hourlywage=> 5.00} );
print $E2->format(),
$E3->format();
print "\nNow we'll create an EmployeeList.",
"\nWhat does Data::Dump see when it's empty?\n";
my $L = new EmployeeList();
pp($L);
print "\nHow does an empty list print?\n";
print $L->format();
$L->set_EmployeeList( [ $E1, $E2, $E3 ] );
print "\nAfter adding George, Ellen and Phideaux, our list looks like:\n";
pp($L);
print "\nHow does it look using the built-in formatter?\n";
print $L->format();
print "\nDoes get_EmployeeList work?\n";
pp($L->get_EmployeeList());
##
##
$ perl classes.pl
What does Data::Dump see for my Employee?
bless({ hourlywage => 50, hours => 40, name => "George" }, "Employee")
How does it print?
Employee info: name: George hours: 40 wage: 50
Let's create a couple more employees and print them:
Employee info: name: Ellen hours: 30 wage: 35
Employee info: name: Phideaux hours: 10 wage: 5
Now we'll create an EmployeeList.
What does Data::Dump see when it's empty?
bless({ EmployeeList => [] }, "EmployeeList")
How does an empty list print?
Employee info: ARRAY(0x60028cbd8)
After adding George, Ellen and Phideaux, our list looks like:
bless({
EmployeeList => [
bless({ hourlywage => 50, hours => 40, name => "George" }, "Employee"),
bless({ hourlywage => 35, hours => 30, name => "Ellen" }, "Employee"),
bless({ hourlywage => 5, hours => 10, name => "Phideaux" }, "Employee"),
],
}, "EmployeeList")
How does it look using the built-in formatter?
Employee info: ARRAY(0x600240278)
Does get_EmployeeList work?
[
bless({ hourlywage => 50, hours => 40, name => "George" }, "Employee"),
bless({ hourlywage => 35, hours => 30, name => "Ellen" }, "Employee"),
bless({ hourlywage => 5, hours => 10, name => "Phideaux" }, "Employee"),
]
##
##
package EmployeeList;
. . .
sub format {
my $self = shift;
for my $anEmployee ( @{ $self->{EmployeeList} } ) {
# Do something with the employee, such as:
# print "current employee name is: ", $anEmployee->{name}, ".\n";
}
}
##
##
# Get a list of employees between ages 30 and 50 who make more than $25/hr
my $interesting = $L->query( [ "AGE", "BETWEEN", 30, 50 ],
[ "HOURLY", "ABOVE", 25 ],
);
##
##
my $interesting = $L->filter_age( 30, 50 )
->filter_hourly( 25, 99999999999999 );