perl基础问题01



QUOTE:
原帖由 每日一瓜 于 2008-12-4 16:47 发表
哪位高手解释下,谢谢呵!
不懂@$_呢。

$_是一个数组引用, @$_解引用。

[Copy to clipboard] [ - ]
CODE:
#!/usr/bin/perl
#
use warnings;
use strict;
use Data::Dumper;

my @array1;
while (<DATA>){
    push @array1,[ split ];
}

print Dumper @array1;
foreach (@array1){
    print "@$_\n";
}
__DATA__
linux cbt redhat
linux cbt DEBIAN
linux cbt slackware
linux cbt centOS



QUOTE:
$VAR1 = [
          'linux',
          'cbt',
          'redhat'
        ];
$VAR2 = [
          'linux',
          'cbt',
          'DEBIAN'
        ];
$VAR3 = [
          'linux',
          'cbt',
          'slackware'
        ];
$VAR4 = [
          'linux',
          'cbt',
          'centOS'
        ];
$VAR5 = [];
linux cbt redhat
linux cbt DEBIAN
linux cbt slackware
linux cbt centOS



QUOTE:
原帖由 hitsubunnu 于 2008-12-4 17:08 发表

@aa = qw(1 2 3);
$_ = 'aa';

print @$_;


$_ 代表 数组的字母
@  代表 数组符号

终于明白了,原来[split]得到的是列表名,我还以为@array1里面保存的是data1里面的单词。
非常感谢!


QUOTE:
原帖由 hitsubunnu 于 2008-12-4 17:08 发表

@aa = qw(1 2 3);
$_ = 'aa';

print @$_;


$_ 代表 数组的字母
@  代表 数组符号

这个例子不是很好吧
@a=(1,2,3,4,[1,2,3,[4,2,1,3]]);
print @{$a[4]};
print @{$a[4][3]};
将索引处转换为数组