0

我目前在本地机器上显示 perl cgi 脚本浏览器时遇到问题(http://localhost:8080/Monitoring/www/user_status.xml.pl?user=xxxxxx)。由于这是 Perl 的第一次安装,我知道可能缺少库,所以我通过将所需的“pm”拉到我的本地机器(从 cgi 运行良好的公司 Ubuntu 服务器)来弥补,然后重新启动 Apache 以获取最新修复。当我解决“无法定位...”问题时,一切看起来都很好,直到我遇到以下问题。

The 'pattern' parameter (undef) to DateTime::Format::Strptime::new was an 'undef', which is not one of the allowed types: scalar scalarref
 at C:\xampp\htdocs\Monitoring\lib/Params/ValidatePP.pm line 653.
        Params::Validate::__ANON__("The 'pattern' parameter (undef) to DateTime::Format::Strptime"...) called at C:\xampp\htdocs\Monitoring\lib/Params/ValidatePP.pm line 497
        Params::Validate::_validate_one_param(undef, HASH(0x26e646c), HASH(0x26e68d4), "The 'pattern' parameter (undef)") called at C:\xampp\htdocs\Monitoring\lib/Params/ValidatePP.pm line 356
        Params::Validate::validate(ARRAY(0x26e8b24), HASH(0x26e6514)) called at C:\xampp\htdocs\Monitoring\lib/DateTime/Format/Strptime.pm line 131
        DateTime::Format::Strptime::new(undef, "pattern", undef) called at C:\xampp\htdocs\Monitoring\lib/Geo/DateTime.pm line 47
        require Geo/DateTime.pm called at C:/xampp/htdocs/Monitoring/www/user_status.xml.pl line 10
        main::BEGIN() called at C:\xampp\htdocs\Monitoring\lib/Geo/DateTime.pm line 0
        eval {...} called at C:\xampp\htdocs\Monitoring\lib/Geo/DateTime.pm line 0
Compilation failed in require at C:/xampp/htdocs/Monitoring/www/user_status.xml.pl line 10.
BEGIN failed--compilation aborted at C:/xampp/htdocs/Monitoring/www/user_status.xml.pl line 10.

在我看来,Perl 库存在内部问题并抱怨自己的代码。在 Google 上进行了搜索,找不到有关标题中描述的问题的任何解决方案/建议。在我看来,这不像是缺少图书馆的问题。

任何人都知道这里有什么问题,我能做些什么来解决它?

干杯戴尔

4

1 回答 1

1

在第 47 行C:\xampp\htdocs\Monitoring\lib\Geo\DateTime.pm,您有与以下内容等效的内容:

DateTime::Format::Strptime::new(undef, "pattern", undef)

这揭示了两个错误:

  1. new作为子例程而不是方法调用(因为调用者未定义)。
  2. 您为模式提供了不正确的值。
于 2015-11-12T15:10:54.070 回答