Это первая «серьезная» вещь, которую я делаю в Perl, поэтому, пожалуйста, извините меня, если вопрос несколько глупый.
Я хотел поиграть с алгоритмом поиска пути A *.Я нашел модуль CPAN AI :: Pathfinding :: AStar и в основном пытаюсь заставить данный пример работать.
Прежде всего, я разделил пример на два файла, потому что я не могНе могу понять, как заставить use My::Map::Package;
работать со всем в одном файле.Я создал следующие два файла:
MyAstar.pm:
package MyAstar;
use warnings;
use strict;
use base "AI::Pathfinding::AStar";
my %NODES = get_all_nodes();
sub get_all_nodes {...}
sub getSurrounding {...}
main.pl:
#!/usr/bin/env perl
package main;
use lib '/home/foo/astar/';
use warnings;
use strict;
use MyAstar;
my $map = MyAstar->new or die "No map for you!";
my $path = $map->findPath(1, 5);
print join(', ', @$path), "\n";
Когда я выполняю main.pl, я получаюследующая ошибка:
Не удается найти метод объекта "новый" через пакет "MyAstar" в строке main.pl 9.
Я не уверен, в чем проблемаэто здесь.Я ожидал, что в пакете AI::Pathfinding::AStar
есть подпрограмма с именем new
, но не смог ее найти.Модуль CPAN неисправен или я что-то не так делаю?