in reply to Re: Re: OO design question
in thread OO design question
#!/usr/bin/perl -w ### set up some packages ### this would normally be done using their own files { package Nifty; sub new { my $type = shift; my $self = {@_}; if( $self->{type} ){ # require $self->{type}; # if the Nifty::A packages # were in their own files $type = $self->{type}; } return bless( $self, $type); } sub get { return "Some_Value"; } ### default print method sub print_it { my $self = shift; my $str = shift; return $str; } } { package Nifty::A; @Nifty::A::ISA = qw(Nifty); sub print_it { my $self = shift; my $str = shift; return "<a href=$str>$str</a>"; } } { package Nifty::B; @Nifty::B::ISA = qw(Nifty); sub print_it { my $self = shift; my $str = shift; return uc($str); } } # more types et cetera ### here is the main program use strict; my ($obj,$val); $obj = Nifty->new(); $val = $obj->get(); print $obj->print_it( $val ) ,"\n"; $obj = Nifty->new(type=>'Nifty::A'); $val = $obj->get(); print $obj->print_it( $val ) ,"\n"; $obj = Nifty->new(type=>'Nifty::B'); $val = $obj->get(); print $obj->print_it( $val ) ,"\n"; exit;
|
|---|