我继承了Perl中的一个项目--我对这个环境知之甚少。没有其他人知道它的任何事情,也没有人知道如何让它在本地运行。因此,这个项目是通过使用AWS实例的克隆VM来开发的,我厌倦了在VM和本地机器之间保持同步。所以我想让这个项目在Windows上运行。
我安装了草莓Perl。
有一个包含以下内容的cpanfile:
Docker/cpanfile;
requires 'Time::Piece';
requires 'File::Slurp';Docker/cpanfile包含:
requires 'Time::Format';
requires 'Carton';
requires 'curry';
requires 'IO::Socket::SSL', '2.009';
requires 'Mojolicious', '8.40';
requires 'JSON::MaybeXS';
requires 'Mojo::mysql';
requires 'DateTime';
requires 'Mojo::JSON';
requires 'Data::Dumper';
requires 'Data::Dumper::Compact';
requires 'Data::Dump';
requires 'Mojo::UserAgent';
requires 'Storable';
requires 'DateTime::Format::ISO8601';
requires 'DateTime::Format::ISO8601::Format';
requires 'DateTime::Format::MySQL';
requires 'Mojolicious::Plugin::OAuth2';
requires 'Mojolicious::Plugin::OpenAPI';
requires 'Mojo::JWT';
requires 'File::Slurper';
requires 'Text::Table';
requires 'DateTime::Span';
requires 'Data::Format::Pretty::Console';
requires 'WebService::GoogleAPI::Client';
requires 'Email::Sender::Simple';
requires 'Email::Stuffer';
requires 'MIME::Base64::URLSafe';
requires 'Crypt::PBKDF2';
requires 'Try::Tiny';
requires 'Date::Calc::Iterator';
requires 'Mojolicious::Plugin::PODViewer';
requires 'Term::ProgressBar';
requires 'List::Util';
requires 'Data::Printer';
requires 'Mojolicious::Plugin::OAuth2';
requires 'Excel::Writer::XLSX';
requires 'Text::Table::Any';
requires 'PDF::API2';
requires 'GD';
requires 'Text::Table::HTML';
requires 'String::Interpolate';
requires 'MIME::Base64';
requires 'Algorithm::Permute';
requires 'Time::HiRes';
requires 'Benchmark::Object';
requires 'Devel::Size';
requires 'Set::Scalar';
requires 'Mojolicious::Plugin::WriteExcel';
requires 'Array::Utils';
requires 'Mojolicious::Plugin::RenderFile';
requires 'Test::mysqld';
requires 'Getopt::Long';
requires 'Mojolicious::Plugin::Minion';
requires 'Minion::Backend::mysql';
requires 'Mojolicious::Plugin::Minion::Admin';
requires 'HTTP::UA::Parser';
requires 'TAP::Formatter::HTML';
requires 'App::Yath';在我看来很基本。然而,在git中运行cpanm --installdeps会产生如下结果:
Configuring /c/sites/ProjectName... FAIL
! Parsing cpanfile failed: Bareword "Docker" not allowed while "strict subs" in use at cpanfile line 1.
Bareword "cpanfile" not allowed while "strict subs" in use at cpanfile line 1.
! Configuring . failed. See /c/Users/joshd/.cpanm/work/1657148855.2012/build.log for details.所以我必须禁用某种严格性吗?还是有什么我该改变的。此外,尽管有“码头”的参考,没有码头形象和码头文件是我认为多年过时,所以我不认为这是一种方式。
发布于 2022-07-07 00:49:58
Docker/cpanfile;将Docker除以cpanfile并丢弃结果。这不是很有用。这不是很正确。沉默错误消息不是正确的方法。
我想你想
use FindBin qw( $RealBin );
do( "$RealBin/Docker/cpanfile" )
or die( $@ // $! );发布于 2022-07-07 19:47:43
cpanfile大致是Perl代码(我认为这是个坏主意,但人们确实对他们认为的DSL很感兴趣)。这里有一些正确的检查,但是在某个时候,有人会想出一些聪明的方法来使用它作为攻击向量来运行任意代码。
不是说我有其他选择,但这是我最近一直在想的事情。
https://stackoverflow.com/questions/72890816
复制相似问题