我一直试图摆脱一个奇怪的错误几个小时,没有成功.我有一个子程序来排序文件.这是代码:
sub sort_file {
$filename = @_;
print @_;
print $filename;
open(SRTINFILE,"<$filename");
@lines=<SRTINFILE>;
close(SRTINFILE);
open(SRTOUTFILE,">$filename");
@sorted = sort { @aa=split(/ /,$a); @bb=split(/ /,$b); return ($aa[1] <=> $bb[1]); } @lines;
print SRTOUTFILE @sorted;
close(SRTOUTFILE);
}
Run Code Online (Sandbox Code Playgroud)
每次运行此函数时,perl都会创建一个名为"1"的文件.我不知道为什么.我是一个完整的perl菜鸟,我只是用它来快速和脏文本文件处理.有谁知道什么是错的?
ike*_*ami 10
标量上下文中的数组可以计算数组中元素的数量.如果将一个参数传递给函数,则以下内容分配1给$filename.
$filename = @_;
Run Code Online (Sandbox Code Playgroud)
您需要以下任何一项:
$filename = $_[0];
$filename = shift;
($filename) = @_;
Run Code Online (Sandbox Code Playgroud)
此外,您希望将变量的范围限制为函数,因此您需要
my $filename = $_[0];
my $filename = shift;
my ($filename) = @_;
(my $filename) = @_; # Exact same as previous.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
157 次 |
| 最近记录: |