Comment lire les données d’un type de fichier arbitraire en Perl?

J’essaie de lire le contenu d’un fichier afin de pouvoir le valider dans une firebase database (je n’ai pas besoin d’parsingr les données et de ne pas me préoccuper de ce qu’il dit).

Les fichiers peuvent être n’importe quel type d’arbitrage (.exe, .txt, aucune extension, etc.), mais d’après ce que je peux dire, il existe un moyen non binary de lire un fichier et une manière binary spécifique (en utilisant binmode) , et il semble que si vous les utilisez de manière inappropriée pour le mauvais type, il peut modifier vos fichiers (au moins sur Windows?)

Existe-t-il une manière astucieuse de lire le contenu d’un fichier sans avoir à se soucier du type de données dont il dispose?

Après avoir ouvert un binmode de binmode mode read , appliquez-le à binmode .

 open my $fh, '<', '/path/to/file' or die "Error while opening: $!"; binmode $fh; 

La réponse d’Alan est correcte. Même si le fichier est “texte”, vous devez le traiter comme un fichier binary comme tout autre fichier. Il ne va pas “modifier” votre fichier.

Cependant, quand vient le temps de traiter votre fichier texte en tant que fichier texte (affichage, traitement, etc.), vous devrez peut-être faire s/\x0D?\x0A/\n/g; s/\x0D/\n/g; s/\x0D?\x0A/\n/g; s/\x0D/\n/g; dessus. Cela transformera les nouvelles lignes Mac, Windows et Unix en nouvelles lignes du système actuel.

Si vous pouviez donner plus de contexte à ce que vous faites, vous pourriez peut-être obtenir une meilleure réponse.