求书一本《Perl 语言入门(第三版)》

#!usr/local/bin/perl

use strict;
use warnings;

test('', 'test1');
test('', 'test2');


sub test{
    my ($p1, $p2) = @_;

    my $address_txt = "p1\n" if($p1);
      $address_txt .= "$p2\n" if($p2);

    print "$address_txt\n";
}

上面的运行结果大家猜猜是什么?为什么?
额, 日, 为什么?


QUOTE:
原帖由 ynchnluiti 于 2008-11-20 18:19 发表
PERLDOC_PAGER='more +/sort' perldoc perlvar
PERLDOC_PAGER='less -iRs +/sort' perldoc perlvar

(谁知道怎么直接搜$a )

perldoc 会直接调用你设置的 pager,一般为 more,可通过环境变量 PAGER 设置。你在你所使用的 pager 里面怎么搜索,在 perldoc 里面就可以怎么搜索。

详见 perldoc perldoc



QUOTE:
原帖由 jayeley 于 2008-11-20 19:56 发表
    my $address_txt = "p1\n" if($p1);
      

这个语句的行为是未定义的,详见 perlsyn 中的 Statement Modifiers
o, 应该这样 0_0

[Copy to clipboard] [ - ]
CODE:
    my $address_txt;
    $address_txt = "p1\n" if($p1);
    $address_txt .= "$p2\n" if($p2);



QUOTE:
原帖由 tmp 于 2008-11-21 11:43 发表
o, 应该这样 0_0


    my $address_txt;
    $address_txt = "p1\n" if($p1);
    $address_txt .= "$p2\n" if($p2);


我知道你这样可以,我是问我那样为什么会出问题!
我要找到问题的本质,而不是仅仅解决问题!
10楼大侠说了