1

私はボットを持っています。私のボットは IRC にロードします。ボットに 100 クレジットなどのグローバル クレジットを入れます。すべての人が私のボットを使用すると、クレジットが減少します

例 :

Falcon check credit 99
Handy check credit 98
A check credit 97

この場合、クレジットがゼロになった場合、ボットのチェックを停止する必要があります。しかし、次に 0 ボット ストップに到着した場合、クレジットが到着するとボットは再び機能します -1

私のクレジットはこのようにカウントダウンします

    open(FILE, "+<freecredit.txt") or die "$! error";
    undef $/; 
    $number = <FILE>;
    $number = int($number);
    $credits = $number-1;
    seek(FILE, 0, 0); 
    truncate(FILE, tell FILE);
    print FILE $credits;
    close(FILE);

    if($credits == 0) {
    &respond_to_privmsg(\%msg,"Error : you must have credits to check");
    goto toEnd;
    }
    }

toEnd;

しかし、クレジットが 0 を通過して -1 ボットに到達した場合は、チェックを続けます。クレジットに 0 ボットがある場合、ボットにクレジットを追加するまでチェッカーを停止します。

助けてくれてありがとう:)

4

2 に答える 2

0

私はあなたのスクリプトを使用しましたが、そのように見えます:

    open my $fh, '+<', 'freecredit.txt' or die "$! error";
  my $credits = <$fh>;

  if ($credits == 0) {
print $credits;
    last;
  }

  $credits -= 1;

  truncate $fh, 0;
  seek $fh, 0, 0;
  print $fh $credits;
  close $fh;

このようなCMDのエラー:

E:\>perl a.pl
Can't "last" outside a loop block at a.pl line 6, <$fh> line 1.
0

どのように修正しますか?

于 2013-10-11T13:44:47.960 に答える