Rolf: Ich versteh das nicht ...?!

Hallo,
Kann mir jemand sagen was daran
if (dbmopen(%logins,$loginlog,0666))
{
        flock(%logins,2);

falsch ist?
Der error log sagt dazu folgendes:
flock() on unopened filehandle 0

Grüsse vom rolf

  1. Hallo,

    Kann mir jemand sagen was daran
            flock(%logins,2);
    falsch ist?
    Der error log sagt dazu folgendes:
    flock() on unopened filehandle 0

    Ein Hash (%logins) ist kein Filehandle, flock() erwartet aber einen solchen als ersten Parameter.

    Näheres findest du mit
    perldoc -f flock
    perldoc -f dbmopen

    Interessant in diesem Zusammenhang ist auch
    perldoc -f tie
    perldoc perltie
    und
    perldoc DB_File

    Grüße
      Klaus

    1. hallo,

      Ein Hash (%logins) ist kein Filehandle, flock() erwartet aber einen solchen als ersten Parameter.

      Näheres findest du mit
      perldoc -f flock
      perldoc -f dbmopen

      Interessant in diesem Zusammenhang ist auch
      perldoc -f tie
      perldoc perltie
      und
      perldoc DB_File

      In perldoc konnte ich nur dies :

      print out history file offsets

      dbmopen(%HIST,'/usr/lib/news/history',0666);
          while (($key,$val) = each %HIST) {
              print $key, ' = ', unpack('L',$val), "\n";
          }
          dbmclose(%HIST);

      finden aber nichts von
      perldoc -f flock
      perldoc -f dbmopen

      auch nichts in der suchmaschiene google.

      Gibts da vielleicht ein konkreteres Beispiel?
      Danke schon jetzt
      Grüsse vom Rolf

      1. Hallo,

        ... aber nichts von
        perldoc -f flock

        http://www.perldoc.com/perl5.6/pod/func/flock.html

        perldoc -f dbmopen

        http://www.perldoc.com/perl5.6/pod/func/dbmopen.html

        auch nichts in der suchmaschiene google.

        Solltest Du lokal Perl installiert haben (was absolut empfehlenswert ist) ist üblicherweise auch die Dokumentation installiert. Zumindest über ein Shell-Fenster kannst Du dann diese einsehen ( Activestate-Perl liefert für ihre Ports auch dein HTML-Doku mit damit Shell-Muffel diese dann in einem Browser benutzen können.

        Gibts da vielleicht ein konkreteres Beispiel?

        Zitat aus perldoc -f dbmopen:
        (Unlike normal open, the first argument is not a filehandle, even though it looks like one)
                                                   ^^^
        Syntax von flock:

        flock FILEHANDLE,OPERATION

        Die Frage ist jetzt wohl, wie das nur zusammenpassen und wie man ein konkretes Beispiel dafür finden soll?

        Noch ein Zitat aus perldoc -f dbmopen:

        [This function has been largely superseded by the tie function.]

        Du solltest also nachdenken, ob Du nicht dbmopen durch tie ersetzen kannst. Wie das geht steht eben u.a. in perldoc DB_File.

        Grüße
          Klaus

  2. Halihallo Rolf

    [...]
    [pref:t=40693&m=222803]

    Wenn du schon zwei Postings zum selben Thema eröffnest, dann verlinke sie auch, wie es
    sich gehört oder unterlass es ganz. Danke.

    Viele Grüsse

    Philipp