- 论坛徽章:
- 0
|
如果是一个二维数组,类似这样:- while (<grp_INPUT>){
- $ll=trim($_);
- push(@list,[split(/\t/,$ll)]);
- }
- @rank = sort seniority4 @list;
复制代码 上面的排序是可以正常的.
但我现在@list是由另一个指针指向的. 比如下面的@ff里的每个元素指向一个二维数组(@list)- sub splitFileByCS2Mem {
- my($f,$cid,$sid)=@_;
- my %fmap=getChrMap();
- my($line,@l,@ff);
- open(CS_INPUT,"<$f") || die "Cannot open $f.\n";
- while($line=<CS_INPUT>) {
- $line=trim($line);
- @l=split('\t',$line);
- push(@{$ff[$fmap{$l[$cid].$l[$sid]}]},[@l]);
- }
- close(CS_INPUT);
- return(@ff);
- }
复制代码 现在想对@ff中的每个二维数组排序:
- @ff=splitFileByCS2Mem('xx.txt',0,1);
- for $j(0..$#ff) {
- #对unmethy排序
- $up=$ff[$j];
- @rank = sort sort4 @{$up}; #####这句出错了... "Can't use an undefined value as an ARRAY reference"
- }
复制代码 不知道要怎么写sort的那个参数才可以? |
|