split分割后,第二段不为空,这个if怎么写啊?

split分割后,第二段不为空,这个if怎么写啊?

my ($base, $word) = split /\t/;

   if ($word!=undef){

我这里用$word!="" 和!=undef 都出错
请问这里怎么写啊
也就是分割出来$word不为空时,持行里面的语句


谢谢:)
if ( $word ne "" )
会出错啊,怎么回事呢:

Use of uninitialized value $word in string ne at F:\PT\test.pl line 14, <> line 1207.
试试
my ($base, $word) =();
($base, $word) = split /\t/;

   if (! $word){
   }


QUOTE:
原帖由 pooronce 于 2008-9-3 18:11 发表
会出错啊,怎么回事呢:

Use of uninitialized value $word in string ne at F:\PT\test.pl line 14,  line 1207.

这样试试:

if ( defined($word) )
你把你用的数据拿出点来给大家看看,才能知道出什么问题啦
数据是这样的:

QUOTE:
thefirstwins.com        thefirsttwins.com
stripfight.com        strip fight.org
kandsphotography.com        kandcphotography.com
mitchglenn.com       
eastcitrussoccer.com       
hotskoots.com        hotshots.com
lvdialagirl.com       
aquabarandnightclub.com       
k112.com        k12.com

其实是以前遇到一个需要求解字段相似度的问题,然后flw大哥给了一个Perl的解决方案,但我看不懂,就断断续续看了一段时间Perl的书,现在终于弄懂了,用上了。。。

检测后发现这个错误倒不影响输出结果,只是比较碍眼着点了。
4、5楼朋友的方法都试过了,4楼的还是会出现这提示,5楼的不提示了,但这样所有的行都处理了。

我用的代码如下(flw给的代码小调整了一些):

[Copy to clipboard] [ - ]
CODE:
#!/usr/bin/perl

use v5.10;

use strict;
use warnings;

#use Smart::Comments;
use Algorithm::Diff;

while(<>){
chomp;
my ($base, $word) =();
($base, $word) = split /\t/;

   if ($word ne ""){

        my $diff = Algorithm::Diff::sdiff( [split //, $base], [split //, $word] );

        my ($line1, $line2, $count);
        foreach my $e (@$diff){
            if ( $e->[0] eq 'u' ){
                $line1 .= ' ';
            }
            else{
                $line1 .= $e->[0];
                $count++;
            }

            $line2 .= $e->[2] || ' ';
        }

        say "${base}\t$count";
}
        }

哦。。。原来是warnings啊,注释掉就好了
谢谢啦


QUOTE:
原帖由 pooronce 于 2008-9-4 09:00 发表
数据是这样的:


其实是以前遇到一个需要求解字段相似度的问题,然后flw大哥给了一个Perl的解决方案,但我看不懂,就断断续续看了一段时间Perl的书,现在终于弄懂了,用上了。。。

检测后发现这个错误倒不 ...

我这里测试没有问题:

$ cat test.pl
#! /usr/bin/perl

use strict;
use warnings;

while(<DATA>)
{
        my ($base ,$word) = split;
        print "$base\n" if ( $word ne "" );
}

__END__
1
2 4
3
$ test.pl
2
已经好啦,谢谢啦:)

好用就行了,暂时不深究这个了