osler has asked for the wisdom of the Perl Monks concerning the following question:
I am working with Lingua::StanfordCoreNLP, a module that exports subclasses when used. When I write a script I am able to use Lingua::StanfordCoreNLP and then instantiate objects that are members of the exported subclasses.
Script Code: (straight from the sample code from cpan)# Note that Lingua::StanfordCoreNLP can't be instantiated. use Lingua::StanfordCoreNLP; # Create a new NLP pipeline (silence messages, make corefs bidirection +al) my $pipeline = new Lingua::StanfordCoreNLP::Pipeline(1, 1); # Process text # (Will output lots of debug info from the Java classes to STDERR.) my $result = $pipeline->process( $text );
When I try to use Lingua::StanfordCoreNLP in a module that I am writing, I get an error message when I try to instantiate an object member of one of the subclasses. The error message tells me that it can't find the subclass.
My Module Code:Can't locate object method "new" via package "Lingua::StanfordCoreNLP::Pipeline" (perhaps you forgot to load "Lingua::StanfordCoreNLP::Pipeline"?)package MyModule; use Lingua::StanfordCoreNLP; my $pipeline = new Lingua::StanfordCoreNLP::Pipeline(1, 1); sub process_text { my ($self,$text) = @_; $pipeline->process( $text ); }
I think this is a problem related to the difference between run-time and compile-time, but I can't wrap my head around why this isn't working and what I can do differently.
Back to
Seekers of Perl Wisdom