$ PERLBREW_ROOT=/data/perlbrew perlbrew init
$ . /data/perlbrew/etc/bashrc
$ perlbrew self-install && perlbrew install-cpanm
$ perlbrew install-multiple -j 10 -n perl-5.40.0 perl-5.32.1 perl-5.26.3
$ perlbrew exec --with perl-5.40.0 cpanm CPAN::Mini::Inject
$ cat /data/darkpan/mcpani.conf
local: /data/minicpan
remote: http://cpan.metacpan.org/
repository: /data/darkpan
passive: yes
dirmode: 0755
$ export MCPANI_CONFIG=/data/darkpan/mcpani.conf
$ perlbrew exec --with perl-5.40.0 mcpani -v --add --module My::App --authorid AUTHOR --modversion 0.01 --file My-App-0.01.tar.gz
$ perlbrew exec --with perl-5.40.0 mcpani --inject -v
$ perlbrew exec --with perl-5.40.0 mcpani --mirror -v
$ cd /data/repos
$ mojo generate plugin -f My::App
$ cd My-App
$ perl Makefile.PL
$ make ; make test ; make manifest ; make dist
$ PERLBREW_HOME=./perlbrew
$ cd /data/mojo/<app>
$ mojo version | tail -n +6 | head -n -2 | sed 's/^ //' | cut -f1 -d ' ' | perl -p -E 's/^(.*)$/requires "$1";/m' >> cpanfile
$ perlbrew list | grep -v @default | while read; do perlbrew lib create ${REPLY// /}@default; done
$ perlbrew list | grep @ | while read; do perlbrew exec --with $REPLY cpanm --mirror file:///data/minicpan -n --installdeps .; done
$ perlbrew list | grep @ | while read; do perlbrew exec --with $REPLY perl -E 'say $]'; done
app-git-ship app-single Mojo-Cache-Role-Expires mojolicious-plugin-loop mojo-payment
app-implode app-sslmaker Mojo-CachingTestProxy Mojolicious-Plugin-Minion-AutoPerform mojo-promisify
app-mdweb app-tt Mojo-Database mojolicious-plugin-pager mojo-run3
app-mojopaste devel-mojoprof Mojolicious-Command-hypnotoad Mojolicious-Plugin-SmartLog Mojo-Sendgrid
app-podify getopt-app Mojolicious-Command-morbo Mojolicious-Plugin-Start mojo-snmp
app-prowess Mock-MonkeyPatch Mojolicious-Plugin-AutoBlacklist mojolicious-plugin-syslog mojo-status
app-remarkpl mojo Mojolicious-Plugin-Listen mojolicious-plugin-systemd mojo.wiki
app-screenorama mojo-asynclist mojolicious-plugin-logf mojo-log-role-format timekeeper