Comment puis-je ajouter des lignes en haut et en bas d'un fichier en Perl?

Je veux ajouter une ligne en haut et en bas du fichier. Je peux le faire de la manière suivante.

open (DATA, "</usr/old") || die "cant open old\n"; #file to which line has to be added

my @body=<DATA>;
close(DATA);

open (FILE, ">/usr/new") || die "cant open new\n"; #file after stuff has been added

print FILE "9   431";

print FILE "\n";

my $body=@body;

for (my $i=0; $i<$body;$i++){

    print FILE "$body[$i]";#not using for loop leads to addition of spaces in new file
}

print FILE "(3,((((1,4),(7,6)),(2,8)),5),9)";

Depuis que j'ai l'exécution d'un grand nombre de fichier ce processus peut prendre beaucoup de temps. N'Perl a aucune fonctionnalité spécifique qui est utilisé pour ajouter des lignes en haut et en bas d'un fichier?

Il n'y a pas une telle chose comme l'ajout de lignes sur le dessus, vous avez besoin d'une sorte de tampon pour enregistrer ce que vous voulez écrire sur le fond, il peut être une chaîne de caractères, mais je préfère le fichier temp. Si vous écrivez/ajout du haut vers le bas. Il n'y a pas d'autre moyen.
pas vrai. Vous pouvez ajouter une ligne au début du fichier avec un simple test: perl -pi -e 'print "This will appear before the original first line\n" if $. == 1' inFile.txt à Partir de stackoverflow.com/a/4388309/48082
votre exemple crée un nouveau fichier, écrit le saut de ligne, puis écrit le contenu du fichier d'origine. Le fait que le newfile extrémités d'une liaison avec le même nom que l'original ne change pas le fait que c'est un fichier différent.
Ah, je vois. Bon point. @WilliamPursell

OriginalL'auteur shubster | 2009-08-05