je debute en perl, et j'aurai besoin d'un peu d'aide : je voudrai faire deux
tableaux, et comparer les valeurs des 2 tableaux, une a une.
Ex:
dans mon tableau 1, j'ai les entrees suivantes :
153738796 26 /tmp/test_cksum/fic1
1509718246 132 /tmp/test_cksum/fic2
dans mon tableau 2, j'ai les entrees suivantes :
222222 26 /tmp/test_cksum/fic1
1509718246 132 /tmp/test_cksum/fic2
=> et je veux que mon prog me retourne une erreur, avec le nom du fichier
"fic1"
=> mais j'ai deux soucis :
- les tableaux ne marchent pas
- je n'ai aucune idee de comment on fait pour comparer les 2 tableaux!
### Positionnement des variables
$reptra='/tmp/test_cksum';
$reptmp='/tmp';
$serv_local=srv1;
$server_distant=srv2;
$user_distant=user;
### Cksum des fichiers sur le serveur distant, avant rapatriement sur le serveur
local
print "\n ### Checksum des fichiers sur le serveur distant avant rapatriement
sur le serveur local \n\n";
$fichier_result= File::Spec->catfile($reptmp,"cksum_distant");
### Rapatriement des fichiers du serveur distant vers le serveur local
print "\n ### Lancement de la commande de rapatriement des fichiers en local...
\n\n";
$cmd_ssh_get = "scp -r $user_distant\@$server_distant:$reptra /tmp";
$CR_cmd_ssh_get = (system $cmd_ssh_get);
if ($CR_cmd_ssh_get eq 0)
{
print "\n ### Transfert de $server_distant vers $serv_local Ok\n";
}
else
{
print "\n ### Transfert de $server_distant vers $serv_local pas OK !!!\n\n";
}
### Verification de la concordance des checksums apres transfert SSH
print "\n ### Checksum des fichiers recus sur le serveur local...\n\n";
chdir $reptra or die "Impossible d'aller dans le repertoire de travail Cause: $!
\n";
$cmd_cksum_local = "cksum $reptra/*";
@tab_cksum_local = (system $cmd_cksum_local);
@tab2 = $reptra/*;
print Dumper @tab2;
print "\n ### Analyse des checksums avant et apres transfert...\n\n";
#comparer les valeurs de 2 tableaux ???
--
Ce message a été posté via la plateforme Web club-Internet.fr
This message has been posted by the Web platform club-Internet.fr
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Ronan Le Hy
zeke03 writes:
je debute en perl, et j'aurai besoin d'un peu d'aide : je voudrai faire deux tableaux, et comparer les valeurs des 2 tableaux, une a une. [snip] $cmd_cksum_local = "cksum $reptra/*"; @tab_cksum_local = (system $cmd_cksum_local); @tab2 = $reptra/*; print Dumper @tab2;
#comparer les valeurs de 2 tableaux ???
#!/usr/bin/perl
use strict; use warnings;
my ($fichier_1, $fichier_2) = @ARGV;
my ($checksum1, $bytecount1) = split ' ', `cksum $fichier_1`; my ($checksum2, $bytecount2) = split ' ', `cksum $fichier_2`;
if ($checksum1 != $checksum2) { warn "$fichier_1 et $fichier_2 n'ont pas la meme somme CRCn"; } else { warn "$fichier_1 et $fichier_2 ont la meme somme CRCn"; }
Au passage, observez: - l'utilisation de strict et warnings ; - les guillemets autour des chaines de caracteres ; - la difference entre system et `` (cf perldoc -f system).
HTH
-- Ronan
zeke03 <zeke03_@caramail.com> writes:
je debute en perl, et j'aurai besoin d'un peu d'aide : je voudrai faire deux
tableaux, et comparer les valeurs des 2 tableaux, une a une.
[snip]
$cmd_cksum_local = "cksum $reptra/*";
@tab_cksum_local = (system $cmd_cksum_local);
@tab2 = $reptra/*;
print Dumper @tab2;
#comparer les valeurs de 2 tableaux ???
#!/usr/bin/perl
use strict;
use warnings;
my ($fichier_1, $fichier_2) = @ARGV;
my ($checksum1, $bytecount1) = split ' ', `cksum $fichier_1`;
my ($checksum2, $bytecount2) = split ' ', `cksum $fichier_2`;
if ($checksum1 != $checksum2)
{
warn "$fichier_1 et $fichier_2 n'ont pas la meme somme CRCn";
}
else
{
warn "$fichier_1 et $fichier_2 ont la meme somme CRCn";
}
Au passage, observez:
- l'utilisation de strict et warnings ;
- les guillemets autour des chaines de caracteres ;
- la difference entre system et `` (cf perldoc -f system).
je debute en perl, et j'aurai besoin d'un peu d'aide : je voudrai faire deux tableaux, et comparer les valeurs des 2 tableaux, une a une. [snip] $cmd_cksum_local = "cksum $reptra/*"; @tab_cksum_local = (system $cmd_cksum_local); @tab2 = $reptra/*; print Dumper @tab2;
#comparer les valeurs de 2 tableaux ???
#!/usr/bin/perl
use strict; use warnings;
my ($fichier_1, $fichier_2) = @ARGV;
my ($checksum1, $bytecount1) = split ' ', `cksum $fichier_1`; my ($checksum2, $bytecount2) = split ' ', `cksum $fichier_2`;
if ($checksum1 != $checksum2) { warn "$fichier_1 et $fichier_2 n'ont pas la meme somme CRCn"; } else { warn "$fichier_1 et $fichier_2 ont la meme somme CRCn"; }
Au passage, observez: - l'utilisation de strict et warnings ; - les guillemets autour des chaines de caracteres ; - la difference entre system et `` (cf perldoc -f system).