in reply to A Net::FTP and DBM::Deep clash

The only obvious thing that I can suggest is that Net::FTP does some initialization that WinXP doesn't like. How about if you just try using that module and printing "It works!" in a test file all by itself.

Alex / talexb / Toronto

"Groklaw is the open-source mentality applied to legal research" ~ Linus Torvalds

Replies are listed 'Best First'.
Re^2: A Net::FTP and DBM::Deep clash
by wfsp (Abbot) on Sep 26, 2005 at 12:38 UTC
    Thanks for your comment.

    I use Net::FTP regularly without any problems.

    In fact I had one script creating a db and another ftping it. It was only when I combined the scripts that everything went belly up. Because I had not had any problems it took a long time to realise what was causing it.

    puploki's efforts indicate it is something to do with my setup.

      I further tracked the error down to the value 33 in the kosovar array. Changing this to any other value cures the problem. I conclude that DBM::Deep (0.94) had some bug that manifest itself when a '!' appears in the data. Maybe this has been fixed in later versions?


      Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
      Lingua non convalesco, consenesco et abolesco. -- Rule 1 has a caveat! -- Who broke the cabal?
      "Science is about questioning the status quo. Questioning authority".
      The "good enough" maybe good enough for the now, and perfection maybe unobtainable, but that should not preclude us from striving for perfection, when time, circumstance or desire allow.
        BrowserUK++

        Same results here. Makes you wonder if there are any more 'issues'.

        As far as I can tell 0.94 is the most recent version. I use DBM::Deep because it is the only one I could find that I could run/test locally and on my ISP's server (it is pure Perl).

        Apart from this it's been just the ticket.

        Many thanks for your help.

        Hello, this is Joseph Huckaby, author of DBM::Deep. I was able to reproduce the crash in WinXP ActivePerl 5.8.7 + Net::FTP WITHOUT using DBM::Deep at all. All you have to do is:
        #!/usr/bin/perl use strict; use warnings; use Net::FTP; $| = 1; my $words_all = { kosovar => [qw(33 35 28 44)], }; my %pack; while (my ($word, $url_list) = each %{$words_all}){ my $url_list_packed = pack 'v*', @{$url_list}; $pack{$word} = $url_list_packed; } warn "calling isa on kosovar\n"; warn UNIVERSAL::isa($pack{'kosovar'}, "ARRAY") . "\n"; warn "you should never see this, because it crashed.\n";
        The crash occurs when you call isa() on the kosovar key in the hash. This should be a perfectly valid call, which should return true. Instead, it crashes the VM. I conclude that this is probably a bug in Net::FTP, or ActiveState Perl on WinXP.

      I reproduced your results exactly using XP/5.8.4/D::D 0.94/N::FTP 2.72.


      Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
      Lingua non convalesco, consenesco et abolesco. -- Rule 1 has a caveat! -- Who broke the cabal?
      "Science is about questioning the status quo. Questioning authority".
      The "good enough" maybe good enough for the now, and perfection maybe unobtainable, but that should not preclude us from striving for perfection, when time, circumstance or desire allow.