免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1642 | 回复: 6
打印 上一主题 下一主题

高手请指点!实力展现...... [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-06-22 14:58 |只看该作者 |倒序浏览
代码如下:
#! /usr/bin/perl
$var1=@ARGV[0];
$var2="switch.log";
$var3="switch1.log";
$var4="switch2.log";
$d=" ";
$var1="$var1"."$d";
sub subfunc{
        my($num1,$num2)=@_;
        open(file,"$num2";
        @array=<file>;;
        $i=0;       
        while(@array[$i] ne ""{
                $number=index(@array[$i],$num1,$number);
                if($number ne -1)
                {
                  print "@array[$i]\n";                       
                };
                $i++;
        };       
        close(file);               
};
       
print "Content-type:text/html\n\n";
subfunc($var1,$var2);
subfunc($var1,$var3);
subfunc($var1,$var4);

print "hello every body!\n";


我通过<a target="_blank" href=syslog_treat.pl>;在网页中调用perl。
实际应用中,新开窗口中只显示“hello erery body!”(绿色代码段内容),其他代码段内容不显示。请问这是什么原因啊?我在cmd下支持perl程序时,输出一切都很正常啊!

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
2 [报告]
发表于 2005-06-22 16:36 |只看该作者

高手请指点!实力展现......

当前工作目录不是你想象的那样。
建议使用绝对路径。

论坛徽章:
0
3 [报告]
发表于 2005-06-22 16:45 |只看该作者

高手请指点!实力展现......

#! /usr/bin/perl
print "Content-type:text/html\n\n";


$var1=@ARGV[0];
$var2="switch.log";
$var3="switch1.log";
$var4="switch2.log";

$d=" ";
$var1="$var1"."$d";

sub subfunc{
        my($num1,$num2)=@_;
        open(file,"file\\" . "$num2";
        @array=<file>;;
        $i=0;       
        while(@array[$i] ne ""{

                $number=index(@array[$i],$num1,$number);
                if($number ne -1)
                {
                  print "<br>;@array[$i]<br>;\n";                       
                };
                $i++;
        };
       
        close(file);               
};       

print <<"END";
   
END

subfunc($var1,$var2);
subfunc($var1,$var3);
subfunc($var1,$var4);

代码修改后可以正常显示了!(我把perl程序以及log日志放到了同一目录下了,所以跟路径没有关系)

还有一点想请教高手,我每次提取的字符串过长,一行显示不下,我怎样才能更改显示字符的大小啊?

论坛徽章:
0
4 [报告]
发表于 2005-08-23 15:51 |只看该作者

高手请指点!实力展现......

我每次提取的字符串过长,一行显示不下,我怎样才能更改显示字符的大小啊?

把这段加到你的html输出头部里,可以改变字体大小,及强迫断行:

<style type="text/css">;
                body{font-size:10pt}
                table{font-size:10pt}
                td{word-wrap: break-word; word-break: break-all}
            </style>;

另外,$var1=@ARGV[0]; 这种写法不好,should be:
$var1=$ARGV[0];

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
5 [报告]
发表于 2005-08-23 19:07 |只看该作者

高手请指点!实力展现......

其實也可以
用<span>;或<div>;配上兰花仙子的css...也行...很多作法....

论坛徽章:
0
6 [报告]
发表于 2005-08-23 19:17 |只看该作者

高手请指点!实力展现......


  1. if($number ne -1)
复制代码

这样写合适吗?
if ($number != -1);

论坛徽章:
0
7 [报告]
发表于 2005-08-23 20:34 |只看该作者

高手请指点!实力展现......

原帖由 "rorot" 发表:
这样写合适吗?
if ($number != -1);



!=前后是数字比对,ne前后是字符串比对,所以
$number ne -1 写法并不好,如果想比对字符串的话,应该这样:
$number ne '-1'
良好的代码习惯,对以后的大型编程有利。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP