Re: window vs linux vs ....
Citation:
Envoyé par strach
Bonjour à tous
Voilà un code qui ne fonctionne pas comme je voudrais sous linux :
Code:
1 2 3 4
| open (F , "+>>mon_fichier");
foreach (<F>) {
print "$_\n";
} |
En fait il ne me sort rien. Cela marche si je rajoute un
Tu veux faire quoi au juste ? Tu es sûr de forcément écrire quelque chose dedans, une fois que tu as parcouru le contenu ? J'ai tendance à me méfier de ces variantes bizarres d'open... je ne peux jamais me souvenir de qui fait quoi.
Le plus simple est de faire un
Code:
open F, '<', 'fic.txt' or die $!
pour tout imprimer. (A noter la forme open à trois arguments, c'est plus sûr). Ensuite faire un close, et une réouverture en append, si c'est nécessaire :
Code:
open F, '>>', 'fic.txt' or die $!
Je trouve que c'est beaucoup plus clair, il est evident dès l'ouverture ce que tu attends d'un fichier. Si tu veux lire et écrire en même temps dans un fichier, c'est quasiment toujours le signe d'un bug. Ce qu'il te faut en ces cas, c'est une base de données.
N
Re: window vs linux vs ....
Citation:
Envoyé par nematoad
Tu veux faire quoi au juste ?
Je veux lire un fichier, puis tester si un mot existe dedans, et si il n'existe pas le mettre dans le fichier à la fin.
Citation:
Envoyé par nematoad
Tu es sûr de forcément écrire quelque chose dedans, une fois que tu as parcouru le contenu ? J'ai tendance à me méfier de ces variantes bizarres d'open... je ne peux jamais me souvenir de qui fait quoi.
C'est étrange que tu parles de variantes bizzares de open, le + sert à écrire et lire en même temps, c'est, à mon avis, le pendant de la fonction open sous C !
Citation:
Envoyé par nematoad
Le plus simple est de faire un
Code:
open F, '<', 'fic.txt' or die $!
pour tout imprimer. (A noter la forme open à trois arguments, c'est plus sûr). Ensuite faire un close, et une réouverture en append, si c'est nécessaire :
Code:
open F, '>>', 'fic.txt' or die $!
Je trouve que c'est beaucoup plus clair, il est evident dès l'ouverture ce que tu attends d'un fichier. Si tu veux lire et écrire en même temps dans un fichier, c'est quasiment toujours le signe d'un bug. Ce qu'il te faut en ces cas, c'est une base de données.
N
La base de données est un outils beaucoup trop volumineux pour ce que je veux. En fait l'ouverture d'un fichier en écriture/lecture fonctionne parfaitement, mais pas de la même manière suivant le système sous lequel on execute le code. Je voulais tout simplement demander de tester le bout de code sur différents systèmes !
Mais comme on me l'a délicatement fait remarquer, si ça marche avec un seek(), cherche pas et en plus c'est portable.
Merci de ta réponse.
A+