J'ai été chargé de mettre en miroir un site sur un nouveau serveur. L'ancien site a quelques scripts Perl qui, pour autant que je puisse voir en interne (je ne sais rien sur Perl, bien que je comprenne assez bien le codage en général, et en particulier PHP/js/etc) ne dépendent pas de l'ancien serveur. Cela dit, quand j'essaie d'exécuter ce script, qui regarde à travers un fichier de base de données pour trouver le fichier d'article approprié, il ne récupère rien.déplacer un script perl/dbm vers un nouveau serveur, et passer de dbm?
Fondamentalement, il s'agit d'un ancien CMS rudimentaire, comme je l'explique, où il a cherché le nom de fichier dans le fichier PAG et l'a affiché. Je suis un peu perdu ici. Y a-t-il une raison pour que la mise en miroir ne fonctionne pas sur le nouveau site? J'ai vérifié les permissions, j'ai vérifié que Perl est installé dans les mêmes répertoires /usr/etc. Je pense qu'il utilise DBM parce que, according to another article, si je vois des commandes comme celles-ci:
dbmopen(%ARTS, $art_dbm, 0644);
$entry = $ARTS{$article_id};
dbmclose(%ARTS);
il doit être DBM, non? Sur une note connexe, existe-t-il un moyen de fusionner les informations de ce fichier PAG avec les fichiers d'origine sans un script Perl incroyablement sophistiqué? c'est-à-dire, recréer les 100 fichiers texte avec cette information dans le fichier lui-même, plutôt que stockés séparément?
EDIT: merci pour la 1ère réponse ci-dessous. Pouvez-vous expliquer ce que HASH peut être, et le masque? J'ai doublechecked que le fichier .pag (le nom de la base de données) est en effet à l'endroit où il est défini plus tôt dans le fichier .pl, et qu'il a été transféré en binaire. pourtant je ne peux pas l'obtenir pour l'ouvrir correctement!
EDIT 3: Ok, désolé, montage final ici: j'ai utilisé le code de la matrice ci-dessous (Shwern) et a constaté qu'il ne trouve pas ce fichier DB, bien qu'il soit là (deux fichiers articles.pag et articles. dir, mais la variable ne fait référence qu'à des "articles" sans extensions) dans le bon répertoire et avec les bonnes permissions ... Donc, la question est maintenant de savoir ce qui se passe? sont ces différentes versions de perl? ou est-ce que je fais juste quelque chose de basique et de stupide? pour l'enregistrement (oui, c'est terrible) je n'ai pas encore d'accès shell, même si je travaille dessus ... On m'a demandé de le faire en raison de mes compétences en "new web", et je ne suis certainement pas le bon personne pour des choses comme perl et dbm, bien que je puisse lire les fichiers et les comprendre. En guise de suggestion finale, est-ce que quelqu'un sait comment (un script ou autre) je pourrais demander aux gens du serveur d'origine (qui ne sont pas les codeurs) de faire un vidage ASCII, ou serait-ce hors de propos? J'ai besoin de mettre ceci dans CSV et de nouveau dans le dossier afin que je puisse réutiliser dans un autre DB ... quel cauchemar!