Further to
emilford's node today about
tidy code , and my own query the other day about
OO inheritance, here's a new question:
Say I've got a parent class, Word, with subclasses, Noun, Verb & Adjective, and I want to create a reference to one of the subclasses, whose type depends on a file input. To comply with use strict on lexical scope, I reckon I need to start off with a variable declaration, which *doesn't* include an assignment: my $word;. You see this in other languages but I've never seen it in Perl, hence I'm raising it now:
my $word; #this is it--are you supposed to do this?
if ($part eq 'n')
{ $word = new Noun(@blah);
}
elsif ($part eq 'v')
{ $word = new Verb(@blah);
}
else
{ $word = new Adjective(@blah);
}
print $word->get_english();
#etc etc
If this isn't the done thing, please could you tell me how you *should* do it.