使用Perlbrew时从crontab运行Perl脚本

我尝试了以下内容并发现它可以正常工作.这是由非特权用户完成的.首先找出perl命令的位置:
# which perl

然后检查PERL5LIB的值:

# echo $PERL5LIB

然后,在用户的crontab文件中,执行以下操作:

MAILTO=<my email address for the jobs output>
HOME=/home/myhome
PERL5LIB=/home/myhome/perl5/lib/perl5

0 2 * * * $HOME/<rest of path to perl>/perl $HOME/<path to my perl script> arg1 ...

这将在凌晨2点运行,似乎正确找到所有Perl库.我的问题是:这是完整和便携的吗?有没有更好的办法?

我已经看到了许多bash和perl脚本,它们应该为执行Perl脚本准备环境,但这似乎就足够了.欢迎任何建议!

编辑:从评论到问题,似乎我使用Perlbrew和local :: lib的“坏”混合.确保库安装在特定Perlbrew版本中的方法在这里得到解答:How do I install CPAN modules while using perlbrew?.当您使用local :: lib时,cpan和cpanm都将安装在PERL5LIB下,除非您明确告诉他们不这样做. cpanm似乎也更适合与Perlbrew一起工作.

解决方法

脚本的shebang(#!)行应指向它要运行的(perlbrew-installed)perl. (这应该是安装脚本的一部分.)这就是你所需要的.
0 2 * * * /path/to/script arg1 ...

相关文章

1. 如何去重 #!/usr/bin/perl use strict; my %hash; while(...
最近写了一个perl脚本,实现的功能是将表格中其中两列的数据...
表的数据字典格式如下:如果手动写MySQL建表语句,确认麻烦,...
巡检类工作经常会出具日报,最近在原有日报的基础上又新增了...
在实际生产环境中,常常需要从后台日志中截取报文,报文的形...
最近写的一个perl程序,通过关键词匹配统计其出现的频率,让...