Alain: wie kann ich "my $jetzt = time()" in dbfile eintragen?

Hallo,
Ich möchte einen sogenannten time-stamp  in eine db-file setzten,aber
mit "my $jetzt = time();" gehts nicht.Es sollte doch eine 10 stellige zahl sein,die eingetragen wird?
 Fehlt da noch was wie localtime oder so?
Ich hab hier ein Beispiel:
use DB_File;
my $file = 'login';
my $users = 'nouser';
my $jetzt = time();
my $bis = $jetzt + 1;
my %dbfile;
my $db = tie (%dbfile , "DB_File", $file, O_RDWR|O_CREAT, 0644);
my $fd = $db->fd;
open(DBM, "+<&=$fd");
flock(DBM, LOCK_EX);
my ($ip_last, $count_last, $bis) = split(/\*/,$dbfile{$users});
if ($ip_last ne $ip_now||$jetzt < $bis)
{
$count_last++;
}
........

aber so gehts anscheinend nicht?!
Gruss
Alain

  1. Ich hab hier ein Beispiel:

    [....]

    aber so gehts anscheinend nicht?!

    In dem Beispiel wird nichts irgendwo eingetragen.

    Struppi.

    1. hi Struppi,

      In dem Beispiel wird nichts irgendwo eingetragen.

      Nagut dann etwas vollständiger:
      use DB_File;
      my $file = 'login';
      my $users = 'nouser';
      my $jetzt = time();
      my $bis = $jetzt + 1;
      my %dbfile;
      my $db = tie (%dbfile , "DB_File", $file, O_RDWR|O_CREAT, 0644);
      my $fd = $db->fd;
      open(DBM, "+<&=$fd");
      flock(DBM, LOCK_EX);
      my ($ip_last, $count_last, $bis) = split(/\*/,$dbfile{$users});
      if ($ip_last ne $ip_now||$jetzt < $bis)
      {
      $count_last++;
      }
      else
      {
      $count_last=0;
      }
      $dbfile{$users} = "$ip_now*$count_last*$bis";

      "$bis" müsste eingetragen werden z.B. sowas wie
      "62.2.233.5*0*1096294754 nouser"  müsste in der liste.db stehen,aber es steht nur
      "62.2.233.5*0* nouser"
      Gruss
      Alain

      1. Nochmal,
        mit dem time stamp möchte ich wissen,ob das script vor weniger als einer sekunde aufgerufen wurde.

        Grüsse
        Alain

    2. Hi Struppi,

      In dem Beispiel wird nichts irgendwo eingetragen.

      komisch,jetzt gehts plötzlich 8-\ ?!
      keine ahnung warum?!
      Hier nochmal der code:
      sub bad {
      use DB_File;
      my $file = 'login';
      my $users = 'nouser';
      my $jetzt = time();
      my $abusecount=3;
      my $abuscounta=6;
      my %dbfile;
      my $db = tie (%dbfile , "DB_File", $file, O_RDWR|O_CREAT, 0644);
      my $fd = $db->fd;
      open(DBM, "+<&=$fd");
      flock(DBM, LOCK_EX);
      my ($ip_last, $count_last, $jetzt_last) = split(/\*/,$dbfile{$users});
      if ($ip_last eq $ip_now||$jetzt eq $jetzt_last)
      {
      $count_last++;
      }
      else
      {
      $count_last=0;
      }

      $dbfile{$users} = "$ip_now*$count_last*$jetzt";
      ..........
      Der Grund dafür ist,ich möchte verhindern,dass irgendwelche spiders oder crackers(mit ihren passwordlisten)mein script mehrmals pro/sekunde
      aufrufen und diese ausschliessen vom gebrauch.
      Ich glaube das mit time() und "if ($jetzt eq $jetzt_last)" geht doch auch oder?Der server kennt doch nur sekunde als kleinsten wert?
      Gruss
      Alain