未定义的子例程 &main 使用图形包

Undefined subroutine &main using graph package

我在 graph package 中使用 add_edge 函数。我想使用 for 循环添加边,但是程序 returns 消息 Undefined subroutine &main::add_edge called at perl.pl line 14 .在 for 循环中打印顶点是可行的。我想我可能需要 for 循环中的 Use Graph; 行,因为这似乎是这里以前的一些答案所建议的,但这并不能防止错误。

完整代码如下:

#!/usr/bin/perl
use strict;
use warnings;
use Graph;

my $graph = Graph->new;
$graph->add_edges(qw(a b c d));

foreach($graph->vertices()){
  add_edge("$_", "v");
}

与您之前使用的add_edges一样,add_edge是图对象上的方法,而不是顶级函数。

$graph->add_edge("$_", "v");