perl基础问题01

perl基础问题01

[root@centOS02 perl]# more array1.pl
#!/usr/bin/perl
use warnings;
use strict;
my @array1;
open (han1,"data1") or die "cant open the file";
while (<han1>){
        push @array1,[ split ];
}
foreach (@array1){
        print "@$_\n";
}


[root@centOS02 perl]# more data1
linux cbt redhat
linux cbt DEBIAN
        linux cbt slackware
linux cbt centOS

对上面程序部分
push @array1,[ split ]; 后面的怎么理解,另外,原文件中第三行首有空格,去哪了
空格是默认的分隔符号 被去掉了
[split]返回的是 以空格作为分隔符对$_进行sqlit操作后返回数组的引用
谢谢,

那split是从第一行第一字段(默认以空格)来取值吗
perldoc -f split


QUOTE:
原帖由 bitterness 于 2008-12-4 10:38 发表
谢谢,

那split是从第一行第一字段(默认以空格)来取值吗

行数跟split没关系。

split 默认以/\s+/切分$_;  while (<>) {} 会循环把文件的每一行赋值给$_。
$_ 是split等函数, while () {}等语句使用的默认变量。perldoc perlvar,看看$_。
@$_是什么?
@array1中应该包含了文件data1中的每个词,print列表array1中第三个元素redhat和第四个元素linux之间
应该没有回车呀?
谢谢,有点理解了


QUOTE:
原帖由 每日一瓜 于 2008-12-4 15:48 发表
@$_是什么?
@array1中应该包含了文件data1中的每个词,print列表array1中第三个元素redhat和第四个元素linux之间
应该没有回车呀?

$_是foreach的默认变量,但@$_是干嘛的?
请高手指点。谢谢阿!!
哪位高手解释下,谢谢呵!
不懂@$_呢。


[Copy to clipboard] [ - ]
CODE:
@aa = qw(1 2 3);
$_ = 'aa';

print @$_;

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