# up at the top: use My::Format::Foo; use My::Format::Bar; # Down later ###################################### # Parse the Filetype info ###################################### if ( /^FILETYPE=(.*)\s*$/ ) { $self->{'FILETYPE'} = "$1"; next; } my $parser_class = 'My::Format::' . ucfirst $self->{'FILETYPE'}; my $data = $parser_class->parse($_); #### # Up top use Module::Load; # Down in the parsing my $module_name = 'My::Format::' . ucfirst $self->{'FILETYPE'}; load $module_name; my $data = $module_name->parse($_); #### my $module_filename = 'My/Format/' . ucfirst($self->{'FILETYPE'}) . '.pm'; require $module_filename; my $module_classname = 'My::Format::' . ucfirst($self->{'FILETYPE'}; $module_classname->import(); my $data = $module_classname->parse($_);