动脑的机会来了

嗯。。唉。。晕乎。这样写法也是不行的,不能解决我的问题。
我想知道,怎么处理读取出来的字串信息,让它是字符串的形式。
哇哈,函数也搞错了,晕。。有篇资料害人,我找perl 去掉空格的函数
喔喔,,那现有什么办法处理呢
说了老半天,还是自个解决了。
我知道原因罗,并不是空格的问题
看你的代码,第一行应该打印出
<html>才对,而且没有换行符,也就是下一个循环导致后面的一句会跟在<html>后面
你可以这么写,

[Copy to clipboard] [ - ]
CODE:
print $_;chomp(my $str=$_);

至于你后面的代码,感觉你想读取Project: ×××Configuration:×××之间的XXX
觉得用index和substr貌似不太好,可以直接使用正则试试看,比如$str=~/Project: (\w).*?Configuration: (\w)/
然后$pro=$1;$conf=$2;
这是我的理解,不知道对不对
对正则式不熟
偶是对这个mm的需求和错误不熟
貌似lonki的正则很好,偶很崇拜


QUOTE:
原帖由 perljoker 于 2007-9-25 14:47 发表
偶是对这个mm的需求和错误不熟
貌似lonki的正则很好,偶很崇拜

.............

这MM刚接触perl吧? 处理字符串的方式似乎还停留在C++的某些方式.

貌似你想提取这一行 Project: xxxxx,Configuration: yyyyy 中的部分信息.
建议把log.htm中的该行贴出来,  然后说明要提取的字段???


PS: 大家都好积极啊, 难道是因为今天中秋...


[Copy to clipboard] [ - ]
CODE:
use strict;

my $project;
my $configuration;
my $logfile = "Log.html";

open LOGFILE, "<$logfile" or die "$!\n";

while (my $line = <LOGFILE>) {
        chomp $line; # and print $line;
       
        if ($line =~ m{Project: \[(\w+)\], Configuration: \[(\w+)\]}) {
                $project = $1 if defined $1;
                $configuration = $2 if defined $2;
                print "Project = $project\n";
                print "Configuration = $configuration\n";
        }
}

--------------

<html>
<head>
        <META HTTP-EQUIV="Content-Type" content="text/html; charset=utf-16">
</head>
<body>
<pre>
<table width=100% bgcolor=#CFCFE5>
        <tr>
                <td>
                <font face=arial size=+3>
                        Build Log
                </font>
</table>

<table width=* cellspacing=0 cellpadding=0>
        <tr>
                <td width=0>
                        Project: [sky], Configuration: [earth]
                </td>
        </tr>
</table>
</body>

-------------------------------

>perl -w test.pl
Project = sky
Configuration = earth
>Exit code: 0

是不是这样

perljoker:
你不是说清楚我的问题了嘛,唉。。
不过,优化起我的代码来了。

我是要读取那串信息,,但我还要将那串信息分解决,即读取project、Configuration后面的值分析出来