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

How do I print $stopwords? It seems to be a string ($) but when I print it I get: "HASH(0x8B694)" with the memory address changing each run.

I am using Lingua::StopWords and I simply want to print the stop words it's using so I know for sure what stop words are there. I would like to print these two a file.

Here is the code:

use Lingua::StopWords qw( getStopWords ); open(TEST, ">results_stopwords.txt") or die("Unable to open requested +file."); my $stopwords = getStopWords('en'); print $stopwords;

I've tried:

my @temp = $stopwords; print "@temp";

But that doesn't work. Help!

Last note: I know there is a list of stop words for Lingua::StopWords, but I am using the (en) and I just want to make absolute sure what stop words I am using, so that is why I want to print it and ideally I want to print it to a file which the file part I should already know how to do.

Replies are listed 'Best First'.
Re: How do I print a hash in perl
by Kenosis (Priest) on Nov 02, 2012 at 19:55 UTC

    getStopWords('en') returns a hash reference that needs to be dereferenced for printing (the keys are the stopwords):

    use strict; use warnings; use Lingua::StopWords qw( getStopWords ); my $stopwords = getStopWords('en'); print "$_\n" for sort keys %$stopwords;

    Partial output:

    a about above after again against all am an and any are aren't ...
      Thank you! That worked perfectly!
Re: How do I print a hash in perl
by toolic (Bishop) on Nov 02, 2012 at 19:55 UTC
Re: How do I print a hash in perl
by aitap (Curate) on Nov 02, 2012 at 20:03 UTC
    $stopwords is a hash reference, not just a hash. See perlreftut and perlref for information about how to work with references.
    Sorry if my advice was wrong.