user-pic

请问这几句代码该怎么写?

Vote 0 Votes

由于不懂编程,一直都是参照其它文件来修改的.最近想改个LEOBBS的插件,遇到了下面的问题,请指导一下:
  elsif($temp_sd eq '4')
  {      
     my $filetoopen = "$lbdir" . "postluck/namelist.txt";
     open(FILE,"$filetoopen");
     my @namelist=<FILE>;
     $namelist1 = @namelist ;
     close(FILE);
     $namelist1 = int(rand($namelist1));
     $rob = "@namelist[$namelist1]"; #我是想在namelist.txt里随机选取一个用户名
 if ($rob eq $inmembername) { #我想判断抢跟被抢的人是否是同一个,是的话就不能
        $nameck = 1            抢. 但这句好像一直无效,从没有显示过"测试成功",
       }else{                  即使是同一个人也是显示" A被A抢".
        $nameck = 2}
        if ($nameck eq 1) {
       $messaged = "<font color=RED>测试成功";
       }else{
$messaged = "<font color=RED> $rob 被$inmembername 抢!";    
     }
   }  
想得我头晕...拜拖了!谢谢!

4 Replies

| Add a Reply
  • 1。要用 $nameck = 1;请选择 if ($nameck == 1) {

    或者你选择用 $nameck = '1';  后面才可以用 eq '1';

    2.你的$nameck = 1 和 $nameck = 2 后面请加上 分号。

    3。 你也许需要对用户名字大小写,特殊符号进行过滤,然后比较是否相同。可以参考leobbsx的其他代码。



  • 还是不行喔
    是不是$rob的值跟$inmembername的值的性质不同,然后无法比较?

  • my @namelist=<FILE>;  把 my 去掉。

  •  elsif($temp_sd eq '6')
    {
    my @namelist = (sky1,sky2);
    $rob = $namelist[rand (@namelist)];

    # 若改成$rob = @namelist[rand(@namelist)];就会一直是"测试成功...",有时明明是"测试成功 sky1 sky1",即$rob跟$membername是相同的.请问它们在性质上是不是有什么不同?

    $membername =~ s/ /\_/g;            
    $membername =~ tr/A-Z/a-z/;
    $rob =~ s/ /\_/g;
    $rob =~ tr/A-Z/a-z/;
     if ($rob eq $membername) {      
    $messaged = "<font color=RED>什么东东?$membername 被 $rob抢!";
    }else{$messaged = "<font color=RED>测试成功$rob  $membername";}
    }
    发现改成上面那样就可以用了.但如果在txt文档里随机选取一个用户名就不行,
    不知道是不是从txt文档里选取出来的值无法跟$membername比较

    谢谢路杨老前辈的指点!呵呵

Add a Reply

Forum Groups

Good Perl Books

Perl 學習手札

作者:簡信昌

Perl 學習手札 , 一本优秀的中文Perl在线学习资料。

Perl 程序讨论区

12 50

Last Topic: [注意]本区文章归档区 by 路杨 on Oct 16, 2006

事物处理及其他

113 1410

Last Topic: 踩个脚印 by 眼睛oo on Dec 4, 2010

测试私密区

测试私密区

18 88

Notice: 用于测试程序或者不可告人之秘密。不要问我要密码哦。。[此为原LB_ES论坛系统保留项,只限原有权限朋友进入,不再接受注册]

OpenID accepted here Learn more about OpenID