【发布时间】:2023-03-22 11:03:01
【问题描述】:
我正在尝试使用 perl 连接到数据库。我尝试按照本教程https://metacpan.org/pod/release/RIBASUSHI/DBIx-Class-0.082840/lib/DBIx/Class.pod 创建一个名为 MyApp 的简单应用程序,正如他们所做的那样,并完全按照他们所做的方式创建文件,但是当我编译 CD.pm 文件时,我收到错误 Can't locate MyApp/Schema.pm在 @INC 中(您可能需要安装 MyApp::Schema 模块)。
程序看起来像在 Atom 中使用包脚本在 ubuntu 上运行代码:
MyApp---
| |
| Schema--
| |
| Result-----
| | |
| Artist.pm CD.pm
|
Schema.pm
#Schema.pm
package MyApp::Schema;
use base qw/DBIx::Class::Schema/;
__PACKAGE__->load_namespaces();
1;
#CD.pm
package MyApp::Schema::Result::CD;
use base qw/DBIx::Class::Core/;
__PACKAGE__->load_components(qw/InflateColumn::DateTime/);
__PACKAGE__->table('cd');
__PACKAGE__->add_columns(qw/ cdid artistid title year /);
__PACKAGE__->set_primary_key('cdid');
__PACKAGE__->belongs_to(artist => 'MyApp::Schema::Result::Artist', 'artistid');
1;
#Artist.pm
package MyApp::Schema::Result::Artist;
use base qw/DBIx::Class::Core/;
__PACKAGE__->table('artist');
__PACKAGE__->add_columns(qw/ artistid name /);
__PACKAGE__->set_primary_key('artistid');
__PACKAGE__->has_many(cds => 'MyApp::Schema::Result::CD', 'artistid');
1;
【问题讨论】:
-
请同时显示您正在运行的程序以及目录列表。使用
tree或类似的东西来制作该列表,这样我们就可以看到在哪里。 -
我编辑了,希望够用了
-
为我工作。
› find|grep pm|parallel perl -c./MyApp/Schema.pm syntax OK./MyApp/Schema/Result/CD.pm syntax OK./MyApp/Schema/Result/Artist.pm syntax OK -
脚本相对于模块在哪里?你如何告诉 Perl 在哪里寻找模块? Is this relevant?
-
对不起,我真的不知道如何回答这个问题。我是为网页创建后端的新手,所以我不知道自己在做什么。如果你知道一个很好的教程,我可以学习所有这些,我将不胜感激。
标签: perl dbix-class