【问题标题】:unable to run perl scripts in BASH "Cannot Locate Switch.pm"无法在 BASH“无法定位 Switch.pm”中运行 perl 脚本
【发布时间】:2015-06-04 17:15:38
【问题描述】:

我正在尝试通过键入

在我的 bash 终端中运行 perl
perl helloworld.pl 

但是当我尝试这样做时,会出现错误消息。

无法在@INC 中找到 Switch.pm(您可能需要安装 Switch 模块)(@INC 包含:/Library/Perl/5.18/darwin-thread-multi-2-level ....)BEGIN 失败--编译在...中止

我已尝试使用 CPAN 更新 Switch.pm,但它要么说它无法安装,因为缺少 YAML 模块,(我也安装了它......但什么都没有),或者它说它已安装但随后出现相同的错误消息向上。

我在我的 Mac 上使用 Yosemite。如果有人遇到此问题或知道我在哪里可以找到非常感谢的解决方案。提前谢谢!

【问题讨论】:

  • YAML 用于cpan 收集统计信息(如果有)。错过它并没有什么坏处,这绝对不是 Switch 安装失败的原因。
  • 大多数人强烈建议不要使用 Switch,因为它基于源过滤器,这使得它本质上很脆弱。这可能会导致非常奇怪且难以调试的错误。
  • 请提供which perl ; which cpan ; head -n 3 "$( which cpan )" ; echo "o conf" | cpan | grep arg ; perl -E'say "$_: $ENV{$_}" for grep /^PERL/, keys %ENV'的输出
  • 我使用的是类似于 MacOS 的 LinuxOS。通常当我通过 CPAN 安装模块时。你试过吗?这是一个示例视频 [将 Perl 模块从 CPAN 安装到 MAC ][1],它向您展示了 MacOS 上的过程。如果是,请向我们展示一些错误输出。 [1]:Installing%20Perl%20Module%20from%20CPAN%20into%20MAC
  • @Gaurav,假装是use Switch;

标签: bash perl osx-yosemite


【解决方案1】:

Switch.pm 已弃用,不再随核心模块一起分发。

如果您可以选择,您不应该在生产代码中使用它。

【讨论】:

  • 它不会以任何方式运行脚本。它说我需要安装 Switch.pm,但它没有运行。
  • 您最好的选择是编辑 helloworld.pl 并删除“use Switch”并将“switch ..case ...”的使用替换为 if() ... else () ...如果您可以分享代码,您将获得更好的反馈:)
猜你喜欢
  • 2012-09-14
  • 2013-01-12
  • 2023-03-14
  • 2011-08-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-20
  • 1970-01-01
相关资源
最近更新 更多