http://qs321.pair.com?node_id=928833

vit has asked for the wisdom of the Perl Monks concerning the following question:

Dear Monks,
After starting using Parallel::ForkManager I am getting
Anonymous function called in forbidden scalar context; faulting at c:/ +ActivePerl/site/lib/Lingua/EN/Tagger.pm line 199
in Lingua::EN::Tagger in the following place:
sub add_tags { my ( $self, $text ) = @_; return unless $self->_valid_text( $text ); my @text = $self->_clean_text( $text ); my $t = $self->{'current_tag'}; # shortcut ### I am getting this in this line: ####### my ( @tags ) = map { $t = $self->_assign_tag( $t, $self->_clean_wor +d( $_ )) || $self->{'unknown_word_tag'} || 'nn' +; "<$t>$_</$t>" } @text; $self->{'current_tag'} = $t; $self->_reset; return join ' ', @tags; }
I printed out @text and it is fine. It may not be directly related to using Parallel::ForkManager. Data is correctly passed to tagger.
So what can cause this error? Any thoughts?

Replies are listed 'Best First'.
Re: Anonymous function called in forbidden scalar context
by choroba (Cardinal) on Sep 30, 2011 at 15:36 UTC
    Are you (or your modules) using Memoize? Google returns many hits with this module.
      No
        Are you sure? From the source:

        package Lingua::EN::Tagger; our $VERSION = '0.16'; use warnings; use strict; use Carp; use File::Spec; use FileHandle; use HTML::TokeParser; use Lingua::Stem::En; use Memoize; use Storable;