MDK 10.1 : passer de Perl 5.8.5 => 5.8.4 [résolu] - Installation - Linux et OS Alternatifs
Marsh Posté le 28-02-2005 à 21:19:30
la seule chose que tu vas arriver à faire, c'est péter ta distros
la plupart des outils mandrake (urpmi, drakconf etc) sont écrits en perl.
essaye plutôt de comprendre pourquoi le script ne fonctionne pas chez toi
Marsh Posté le 28-02-2005 à 21:37:54
Mjules a écrit : la seule chose que tu vas arriver à faire, c'est péter ta distros |
Salut Mjules,
Je voyais plutôt Perl comme un package, je ne pensais pas que c'était intégré à MDK.
N'ayant aucune connaissance en Perl, je me permets de copier le script en question,
au cas ou quelqu'un verrait un "loup".
D'avance merci.
=====================================================
#!/usr/bin/perl
#
$fichout = $ARGV[1];
open(FICHOUT, "> $fichout" );
open(INFO, $ARGV[0]);
@lines = <INFO>;
close(INFO);
$h = 0;
$i = 0;
foreach $enregis (@lines)
{
if ($i == 0)
{
if ($enregis =~ "<programme start=" ) {$i = 1;}
else {print FICHOUT "$enregis"}
}
elsif (($enregis =~ "<programme start=" ) || ($enregis =~ "<title" )) {print FICHOUT "$enregis";}
elsif ($enregis =~ "<date" )
{
$date = &Recup_Info("$enregis" );
if ($date ne "" )
{
$date = "Date : $date|";
}
}
elsif ($enregis =~ "<country" )
{
$country = &Recup_Info("$enregis" );
if ($country ne "" ) {$country = "Pays : $country|"; }
}
elsif ($enregis =~ "<category" )
{
$category = &Recup_Info("$enregis" );
if ($category ne "" ) {$category = "Type de programme : $category|"; }
}
elsif ($enregis =~ "<length" )
{
$length = &Recup_Info("$enregis" );
if ($length ne "" ) {$length = "Durée du programme : $length|";}
}
elsif ($enregis =~ "<actor" )
{
$actor_recup = &Recup_Info("$enregis" );
if ($actor_recup ne "" )
{
if ($k == 0)
{
$actor = "Acteur(s) : $actor_recup|";
$k++;
}
else {$actor = "$actor $actor_recup|";}
}
}
elsif ($enregis =~ "<director" )
{
$director_recup = &Recup_Info("$enregis" );
if ($director_recup ne "" )
{
if ($l == 0)
{
$director = "Realisateur(s) : $director_recup|";
$l++;
}
else {$director = "$director $director_recup|";}
}
}
elsif ($enregis =~ "<writer" )
{
$writer_recup = &Recup_Info("$enregis" );
if ($writer_recup ne "" )
{
if ($m == 0)
{
$writer = "Auteur(s) : $writer_recup|";
$m++;
}
else {$writer = "$writer $writer_recup|";}
}
}
elsif ($enregis =~ "<desc" ) {$h = 1;}
elsif ($enregis =~ "</desc" ) {$h = 0;}
elsif ($h==1)
{
$enregis =~ s/\s+$//;
if ($enregis ne "" ) {$desc = "$desc$enregis|"}
}
elsif ($enregis =~ "</programme>" )
{
$desc = "<desc lang = \"fr\">$category$date$length$country$writer$director$actor||Résumé:|$desc</desc>";
print FICHOUT "$desc\n</programme>\n";
$k = 0;
$l = 0;
$m = 0;
$date = "";
$country = "";
$category = "";
$length = "";
$actor = "";
$director = "";
$writer = "";
$desc = "";
}
}
sub Recup_Info
{
@table_temp = split('>',"@_[0]" );
@table_temp2 = split('<',"@table_temp[1]" );
$Recup_Informations = @table_temp2[0];
}
=====================================================
Marsh Posté le 28-02-2005 à 23:05:48
Mjules a écrit : la seule chose que tu vas arriver à faire, c'est péter ta distros |
Problème corrigé !
Après avoir modifié mon script.pl comme suit :
#!/usr/bin/perl
print("My Script" );
": No such file or directory.
Use -S to search $PATH for it.
=> même erreur ! J'en ai déduis un pb de fichier, sans pouvoir en déterminer la cause.
Ayant un script2.pl fonctionnel, je l'ai dupliqué en script3.pl, puis ai collé l'intégralité du script1, et sauvegardé.
Maintenant, mon script3.pl fonctionne parfaitement.
Merci pour ton aide.
Marsh Posté le 01-03-2005 à 16:13:21
Pour info :
le package se nomme perl et perl-base.
rpm -qa | grep perl
http://www.linux-wizard.net/howto. [...] ages#verif
Marsh Posté le 01-03-2005 à 20:43:13
Dark_Schneider a écrit : Pour info : |
Merci pour cette précision.
Puis-je en conclure que Perl est géré comme un autre package :
choix de la version, suppression éventuelle... ?
Si tel est le cas, cela contredit le message de Mjules.
Marsh Posté le 01-03-2005 à 20:44:53
ça ne me contredit pas perl est effectivement un paquet comme un autre (le kernel linux est aussi un "simple" paquet). ça n'enlève rien au fait que tout les outils de Mandrake sont écris en Perl et que je me garderais bien de toucher à ça si je ne sais pas exactement ce que je fais.
Marsh Posté le 02-03-2005 à 20:16:25
Mjules a écrit : ça ne me contredit pas perl est effectivement un paquet comme un autre (le kernel linux est aussi un "simple" paquet). ça n'enlève rien au fait que tout les outils de Mandrake sont écris en Perl et que je me garderais bien de toucher à ça si je ne sais pas exactement ce que je fais. |
C'est noté.
A+
Marsh Posté le 28-02-2005 à 21:17:47
Salut à tous,
J'ai des soucis avec un script Perl qui tourne bien chez son auteur en 5.8.4,
mais retourne une erreur chez moi (en 5.8.5).
Sous MDK 10.1, j'essaie de désinstaller mon perl 5.8.5, mais je n'arrive pas
à localiser le package ( je ne le vois pas dans le gestionnaire), et donc à le supprimer.
Ensuite, il faut que j'installe la version 5.8.4. A ce propos, savez-vous s'il existe
un package rpm ? (Sinon j'installerai le fichier perl-5.8.4.tar.bz2).
Merci pour votre aide.
Message édité par kafifi le 28-02-2005 à 23:06:09