动脑的机会来了

就跟其它的变量一样写的$Errors =$1 if defined $1;
你问 flw 去吧,我不知道怎么回事了


QUOTE:
原帖由 perljoker 于 2007-9-25 16:40 发表
偶好好动了下脑筋,写了个
#! /usr/bin/perl -w
#        read.pl

use strict;        use warnings;

open(FN,"ARGV[0]"||die $!;
my ($proj,$conf,$err,$warn);
while(){
#        print;                                #打印当前行就是源文件的, ...

1. 一次读入它吧, 文件不大, 也没有重复匹配的.

2. if ( =~)已经判断是否匹配, 后面对$1, $2的if有点多余(虽然if为true时, $2也可能为空)

PS: 写简洁一点, MM会觉得你很厉害的
$proj=$1 if($1);
$Errors =$1 if defined $1;
$err=$1 if $1;


哇,这三种有何区别啊


QUOTE:
原帖由 life382 于 2007-9-25 16:58 发表
$proj=$1 if($1);
$Errors =$1 if defined $1;
$err=$1 if $1;


哇,这三种有何区别啊

有区别,你用 0 来试试


QUOTE:
原帖由 cobrawgl 于 2007-9-25 16:57 发表
你问 flw 去吧,我不知道怎么回事了

他要帮我,,早在刚才也做答了吧。
他只是过来警告你就走了,其话中好像就把这个艰巨的任务交给你了。


QUOTE:
原帖由 life382 于 2007-9-25 16:58 发表
$proj=$1 if($1);
$Errors =$1 if defined $1;
$err=$1 if $1;


哇,这三种有何区别啊

第一和第三个是没有区别的,区别在于第一个和第二个
如果$1=0的情况,第一的if是不成立的,而diefined $1 是成立的


QUOTE:
原帖由 hutule110 于 2007-9-25 17:01 发表

第一和第三个是没有区别的,区别在于第一个和第二个
如果$1=0的情况,第一的if是不成立的,而diefined $1 是成立的

饿。。。是警告我。。谢谢

我61楼重新编辑过了,你试试看行不行,刚才有错,现在更正了
别寻我开心,,看情况都是意义都差不多,
两个是检测变量是否有值,一个是检测变量是否有定义,
为何找不到0呢。见鬼了……


QUOTE:
原帖由 perljoker 于 2007-9-25 17:02 发表

饿。。。是警告我。。谢谢

我61楼重新编辑过了,你试试看行不行,刚才有错,现在更正了

你都不知道哪里错了 。。。