I have a rough grasp on OO perl however,
I would like someone with perl experience to give me an explanation of what the following code is doing?
I have highlighted in red the lines I would most like explained

When I run the code the output is c1

package NewObject;
sub new{
my $newobject = {};
$myobject->{"Apple"} = $_[1];
$myobject->{"Pear"} = $_[2];

return bless $newobject;
sub newmethod{
my $me = shift;
$me->{"Apple"} = shift;
$me->{"Pear"} = $_[0];

$my = new NewObject("a1", "b1");
$my->newmethod("c1", "d1");
print $my->{"Apple"};
Regards Maxwell