2015-11-12 6 views
0

Je suis actuellement confronté à un problème d'obtention de perl cgi Affichage du navigateur de script sur ma machine locale (http://localhost:8080/Monitoring/www/user_status.xml.pl?user=xxxxxx). Comme il s'agissait d'une première installation de Perl, je comprends qu'il pourrait y avoir des bibliothèques manquantes, donc je l'ai inventé en tirant les "pm" nécessaires sur ma machine locale (du serveur de la société Ubuntu où le cgi fonctionne bien) et redémarrez Apache les dernières corrections. Tout a l'air très bien que je travaille à travers les problèmes "Can not Locate ..." jusqu'à ce que je suis resté sur le problème suivant.Le paramètre 'pattern' (undef) de DateTime :: Format :: Strptime :: new était un 'undef', qui n'est pas un des types autorisés: scalaire scalaire

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. 

Il me semble que les bibliothèques Perl ont des problèmes internes et se plaignent de leur propre code. Avez-une recherche sur Google, n'a pas trouvé de résolution/suggestions autour du problème décrit dans le titre. Et ne me regarde pas comme un problème de bibliothèques manquantes.

Quelqu'un sait quel est le problème ici et que puis-je faire pour le réparer?

Vive Dale

+1

Il me semble que vous avez passé 'undef' comme paramètre' pattern' à 'DateTime :: Format :: Strptime :: new'. –

+0

Merci Matt, ce que vous avez dit me rappelle quelque chose que j'ai changé qui rend mon script Perl local différent de celui sur le serveur. Je vais revenir en arrière et voir comment ça se passe. Merci – dale

+1

Nous pourrions probablement fournir une aide plus précise si vous postez le code réel. –

Répondre

1

à la ligne 47 de C:\xampp\htdocs\Monitoring\lib\Geo\DateTime.pm, vous avez quelque chose d'équivalent à ce qui suit:

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

Cela révèle deux bugs:

  1. vous a appelé new comme un sous-programme plutôt que comme méthode (puisque l'invocant est indéfini).
  2. Vous avez fourni une valeur incorrecte pour le modèle.