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

Update:

I have figured it out.

On windows, two files are created called wordcount.dir and wordcount.pag and this is NOT the same name as the program.

On Linux, one file is created, and I have called it the same name as the program, so it can't write to itself. As soon as I change the DB name to say, wordcound_db, all is fine.

I'm sure this must be in the port docs somewhere. Going off to check.

Gavin.


Dear all,

I am playing with DBM files, in the hope to benchmark my wordcount program using DBM files, and then using a full blown database. But, first things first:

The following code works fine on Windows (ActiveState 5.8.6), and then on Linux, after using dos2unix, it says it can't find the DB file?

The wordlist, which actually doesn't have any duplicates in it yet, is called english_words

#!/usr/bin/perl use strict; use warnings; # Basename of Simple Database file my $DBFILE = 'wordcount'; # open database, accessed through %WORDS dbmopen (my %WORDS, $DBFILE, 0666) or die "Can't open $DBFILE: $!\n"; # Make a word frequency counter while (<>) { while ( /(\w['\w-]*)/g ) { $WORDS{lc $1}++; } } # Output hash in a descending numeric sort of its values foreach my $word ( sort { $WORDS{$b} <=> $WORDS{$a} } keys %WORDS) { printf "%5d %s\n", $WORDS{$word}, $word; } # Close the database dbmclose %WORDS;
What stupid thing have I done?

Thanks,

Gavin.

Walking the road to enlightenment... I found a penguin and a camel on the way.....
Fancy a yourname@perl.me.uk? Just ask!!!

Replies are listed 'Best First'.
Re: Wordcounting with DBM files - can't open file?
by pboin (Deacon) on May 13, 2005 at 12:07 UTC

    Windows isn't case-sensitive, and Linux is. Perhaps your DB file isn't actually all lower-case?

    Update:perldoc -f dbmopen seems to indicate that the file will be created if it's not found. "If the database does not exist, it is created..." So, in that case, I don't understand your error at all.

      I know. That's what I read too.

      It's the same case. I have even declared the full pathname too.

      Walking the road to enlightenment... I found a penguin and a camel on the way.....
      Fancy a yourname@perl.me.uk? Just ask!!!
Re: Wordcounting with DBM files - can't open file?
by dragonchild (Archbishop) on May 13, 2005 at 12:55 UTC
    Alternately, did you use ASCII or BINARY mode when ftp'ing the file from Windows to linux?

    • In general, if you think something isn't in Perl, try it out, because it usually is. :-)
    • "What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against?"

      I used FileZilla, which does an autodetect on file extension, but as the docs say, if it's not there, it get's created.

      I am running the prog as root, so there so be no permission problems.

      Walking the road to enlightenment... I found a penguin and a camel on the way.....
      Fancy a yourname@perl.me.uk? Just ask!!!