子程序的非法声明,perl
illegal declaration of subroutine, perl
我正在阅读一本书,并根据一些示例制作了以下内容以回答练习。我可能搞砸了一些东西,但对我来说看起来还不错。我收到错误:第 31 行 x3.pl 处的子例程 main::read_file 的非法声明。我不确定这里有什么问题,希望得到帮助。作者想使用 croak,所以如果搞砸了,请将其包含在解决方案中。
use strict;
use warnings;
sub croak { die "[=10=]: @_: $!\n" }
sub read_file {
my $file = shift;
open (FILE, $file) || croak "Couldn't open $file";
while (my $line = <FILE>) {
read_line $line;
}
}
sub read_line {
our %hash;
my @list = split " ", shift;
foreach my $word (@list) {
$hash{$word}++;
}
}
sub print_has {
our %hash;
my @list = keys %hash;
print "@list\n";
}
sub read_file @ARGV
sub print_has
这是错误的:
sub read_file @ARGV
sub print_has
我想你是想打电话给潜艇?子例程调用不使用 sub
关键字。
read_file @ARGV;
print_has;
代码中存在许多不良做法,其中之一阻止了代码 运行。您应该对其进行 code review.
我正在阅读一本书,并根据一些示例制作了以下内容以回答练习。我可能搞砸了一些东西,但对我来说看起来还不错。我收到错误:第 31 行 x3.pl 处的子例程 main::read_file 的非法声明。我不确定这里有什么问题,希望得到帮助。作者想使用 croak,所以如果搞砸了,请将其包含在解决方案中。
use strict;
use warnings;
sub croak { die "[=10=]: @_: $!\n" }
sub read_file {
my $file = shift;
open (FILE, $file) || croak "Couldn't open $file";
while (my $line = <FILE>) {
read_line $line;
}
}
sub read_line {
our %hash;
my @list = split " ", shift;
foreach my $word (@list) {
$hash{$word}++;
}
}
sub print_has {
our %hash;
my @list = keys %hash;
print "@list\n";
}
sub read_file @ARGV
sub print_has
这是错误的:
sub read_file @ARGV
sub print_has
我想你是想打电话给潜艇?子例程调用不使用 sub
关键字。
read_file @ARGV;
print_has;
代码中存在许多不良做法,其中之一阻止了代码 运行。您应该对其进行 code review.