Ask a Question related to PERL Miscellaneous, Design and Development.

  1. #1

    Default dbm problem HELP!

    I can write to, close aand reopen a dbm file with hashes of hasjed of hashes
    and everything is OK.
    Data I write is read back just fine.
    However, when I run the program again later on and use the same exact code
    to reopen the dbm, al the data is gone.

    Here is a snippet of what I am doing:

    dbmopen (%nd,$ndbfile,0666) || die "Can't dbmopen $ndbfile: $!";

    $stk = "ABC";
    $datecode = "20030914";
    $druntime = "700";
    $data = "12345";

    $nd{$stk}{$datecode}{$druntime}{Data} = $data;

    dbmclose (%nd) || die "Can't dbmclose $ndbfile: $!";

    dbmopen (%nd,$ndbfile,0666) || die "Can't dbmopen $ndbfile: $!";
    print "Data: $nd{$stk}{$datecode}{$druntime}{Data}\n";
    dbmclose (%nd) || die "Can't dbmclose $ndbfile: $!";

    -------
    Data: 12345
    -------

    However, if I rerun the script with just the following, I get this:

    $stk = "ABC";
    $datecode = "20030914";
    $druntime = "700";
    $data = "12345";

    dbmopen (%nd,$ndbfile,0666) || die "Can't dbmopen $ndbfile: $!";
    print "Data: $nd{$stk}{$datecode}{$druntime}{Data}\n";
    dbmclose (%nd) || die "Can't dbmclose $ndbfile: $!";

    Use of unitialized value in concatenation (.) at C: blah, blah, blah
    Date:

    Apparently, there is a problem accessing the dbm file, though it is there.
    Any help would be greatly appreciated, thanks,
    Tom




    Tom Guest

  2. Similar Questions and Discussions

    1. contribute problem - access denied file may not existpermission problem
      Recieving the following error message - "access denied file may not exist , or there could be a permission problem" this happened this morning ,...
    2. Problem playing Quicktime thru .DCR embedded in HTML - pathreferencing problem?
      Greetings earthlings and Director heads. Here's the problem: created an HTML file containing shockwave (dcr) movie that calls quicktime movies in...
    3. Uploading problem = weird warning (was: access denied problem.....)
      Hi, I had a problem where my upload form was not working on our production server but was working on two other servers, after checking the...
    4. #21611 [Opn]: Problem with version_compare() (Was: Problem with pear cli and release numbers)
      ID: 21611 Updated by: et@php.net -Summary: Problem with pear cli and release numbers Reported By: jan at horde...
    5. Problem with Apache Web Server config file and PHP (please give advice on what problem may be me)
      HI: Can anyone refer me to someone that can help with the problem below. I installed Apache Web Server on my laptop which has Windows XP. I...
  3. #2

    Default Re: dbm problem HELP!

    when I just try to assign a sub hash to the top, it never gets assigned
    regardless of which run, by the way.

    "Tom" <tom@nosleep.net> wrote in message news:3f6548dc$1@nntp0.pdx.net...
    > I can write to, close aand reopen a dbm file with hashes of hasjed of
    hashes
    > and everything is OK.
    > Data I write is read back just fine.
    > However, when I run the program again later on and use the same exact code
    > to reopen the dbm, al the data is gone.
    >
    > Here is a snippet of what I am doing:
    >
    > dbmopen (%nd,$ndbfile,0666) || die "Can't dbmopen $ndbfile: $!";
    >
    > $stk = "ABC";
    > $datecode = "20030914";
    > $druntime = "700";
    > $data = "12345";
    >
    > $nd{$stk}{$datecode}{$druntime}{Data} = $data;
    >
    > dbmclose (%nd) || die "Can't dbmclose $ndbfile: $!";
    >
    > dbmopen (%nd,$ndbfile,0666) || die "Can't dbmopen $ndbfile: $!";
    > print "Data: $nd{$stk}{$datecode}{$druntime}{Data}\n";
    > dbmclose (%nd) || die "Can't dbmclose $ndbfile: $!";
    >
    > -------
    > Data: 12345
    > -------
    >
    > However, if I rerun the script with just the following, I get this:
    >
    > $stk = "ABC";
    > $datecode = "20030914";
    > $druntime = "700";
    > $data = "12345";
    >
    > dbmopen (%nd,$ndbfile,0666) || die "Can't dbmopen $ndbfile: $!";
    > print "Data: $nd{$stk}{$datecode}{$druntime}{Data}\n";
    > dbmclose (%nd) || die "Can't dbmclose $ndbfile: $!";
    >
    > Use of unitialized value in concatenation (.) at C: blah, blah, blah
    > Date:
    >
    > Apparently, there is a problem accessing the dbm file, though it is there.
    > Any help would be greatly appreciated, thanks,
    > Tom
    >
    >
    >
    >

    Tom Guest

  4. #3

    Default Re: dbm problem HELP!

    Tom wrote:
    > I can write to, close aand reopen a dbm file with hashes of hasjed
    > of hashes and everything is OK.
    No you can't. A simple DBM file only stores keys and values, not
    complex data structures.
    > Data I write is read back just fine.
    Sure. The problem is that what you read is not what you think you
    read.
    > However, when I run the program again later on and use the same
    > exact code to reopen the dbm, al the data is gone.
    It was never stored in the DBM file.
    > Here is a snippet of what I am doing:
    >
    > dbmopen (%nd,$ndbfile,0666) || die "Can't dbmopen $ndbfile: $!";
    >
    > $stk = "ABC";
    > $datecode = "20030914";
    > $druntime = "700";
    > $data = "12345";
    >
    > $nd{$stk}{$datecode}{$druntime}{Data} = $data;
    At this point, you have the hash %nd in memory containing the key
    'ABC' and a _hash reference_ as the value. However, the DBM file does
    not save the hash reference; it just saves a _string_ that looks
    something like 'HASH(0x1555198)'.

    <snip>
    > Apparently, there is a problem accessing the dbm file, though it is
    > there.
    No, that's not the problem. (See above.)

    --
    Gunnar Hjalmarsson
    Email: [url]http://www.gunnar.cc/cgi-bin/contact.pl[/url]

    Gunnar Hjalmarsson Guest

Posting Permissions

  • You may not post new threads
  • You may post replies
  • You may not post attachments
  • You may not edit your posts

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139