fork download
  1. #!/usr/bin/perl
  2. # your code goes here
  3.  
  4. package MONOLOG;
  5.  
  6. use strict;
  7.  
  8. sub new {
  9. my ( $class, $name ) = @_;
  10.  
  11. my $self = bless { name => $name }, $class;
  12.  
  13. $self->process();
  14.  
  15. return $self;
  16. }
  17.  
  18. sub name {
  19. return $_[0]->{'name'};
  20. }
  21.  
  22. sub process {
  23. die "abstract";
  24. }
  25.  
  26. package MONOLOG::Simple;
  27.  
  28. use strict;
  29. use parent -norequire, 'MONOLOG';
  30.  
  31. sub process {
  32. my ( $self ) = @_;
  33.  
  34. my $name = $self->name();
  35.  
  36. printf "Welcome, %s!!!\n", $name;
  37.  
  38. return $self;
  39. }
  40.  
  41.  
  42. package main;
  43.  
  44. use strict;
  45.  
  46. my $abstract = MONOLOG->new('whatever');
  47. };
  48.  
  49. print "As expected: $@" if ($@);
  50.  
  51. my $alex = MONOLOG::Simple->new('Alex');
  52. my $mike = MONOLOG::Simple->new('Mike');
  53.  
Success #stdin #stdout 0s 6312KB
stdin
Standard input is empty
stdout
As expected: abstract at prog.pl line 23.
Welcome, Alex!!!
Welcome, Mike!!!