这个程序有没有更好的实现方法?

我也是这个思路


QUOTE:
原帖由 lin_wang 于 2008-7-16 16:31 发表



可是不是???

可以不是。

  写错了。


QUOTE:
原帖由 q1208c 于 2008-7-16 17:00 发表

可以不是。

  写错了。

PHP可以

Perl不行
我写错括号了,用 大括号

@h{@k} = @v;


QUOTE:
原帖由 cobrawgl 于 2008-7-16 17:06 发表
我写错括号了,用 大括号

@h{@k} = @v;

受教了,perl真强大


QUOTE:
原帖由 cobrawgl 于 2008-7-16 17:06 发表
我写错括号了,用 大括号

@h{@k} = @v;

my (%hash, @keys, @values);

@hash{@keys} = @values;
print "CPU IDLE: $hash{'%idle'}%\n";


[Copy to clipboard] [ - ]
CODE:
D:\MoChou>cat ttt.pl
use Data::Dumper;

while(<DATA>){
    next unless /CPU/;
    my @field = split;
    $_ = <DATA>;
    my @value = split;

    my @index = grep { $field[$_] =~ /^%/ and $field[$_] = $' } 0..$#field;
    my %hash;
    @hash{ @field[@index] } = @value[@index];

    print Dumper( \%hash );
}
__END__
Linux 2.6.18 (lynch)    2008年07月16日

12时18分00秒  CPU   %user   %nice    %sys %iowait    %irq   %soft  %steal   %idle    intr/s
12时18分00秒   all      14.49     0.00      1.06    0.49       0.05     0.02 0.00     83.89    287.70

D:\MoChou>ttt
$VAR1 = {
          'sys' => '1.06',
          'soft' => '0.02',
          'idle' => '83.89',
          'nice' => '0.00',
          'irq' => '0.05',
          'steal' => '0.00',
          'user' => '14.49',
          'iowait' => '0.49'
        };

D:\MoChou>





高深,研究研究!


QUOTE:
原帖由 cobrawgl 于 2008-7-16 17:06 发表
我写错括号了,用 大括号

@h{@k} = @v;



看不懂,解释下
hash slices.

小骆驼上就有。