Ceci est le texte d'entrée:Pourquoi est-ce que j'obtiens une ligne vide en substituant une chaîne avec '%>' en Perl?
<title>Company Selection</title>
<link rel="stylesheet" type="text/css" href="../css/style_hbpSA_css.jsp" />
et je veux remplacer la référence CSS avec deux lignes:
<%@ include file="../common/cmufx.jsp" %>
<link rel="stylesheet" type="text/css" href="<%=basePath%>/<fmt:message key="application.version"/>/css/style_hbpSA_css.jsp" />
Voici la déclaration Perl:
while(<>){
s{<link rel="stylesheet" type="text/css" href="../css/style_hbpSA_css.jsp" />}{
--><%@ include file="../common/cmufx.jsp" %>
<link rel="stylesheet" type="text/css" href="<%=basePath%>/<fmt:message key="application.version"/>/css/style_hbpSA_css.jsp" />;};
print;
}
Et en sortie I obtenir:
<title>Company Selection</title>
-->
<link rel="stylesheet" type="text/css" href="<%=basePath%>/<fmt:message key="application.version"/>/css/style_hbpSA_css.jsp" />
- Si je supprime l'élément '%>' à la fin de la première ligne de substitution, la ligne est imprimée.
- Si la ligne de substitution se termine par '%>', elle est imprimée.
- Si je me sauve le%, la ligne ne soit pas imprimé
La source entière de mon script:
#!/usr/bin/perl
use strict;
use warnings;
while(<>){
s{<link rel="stylesheet" type="text/css" href="../css/style_hbpSA_css.jsp" />}{
--><%@ include file="../common/cmufx.jsp" %>
<link rel="stylesheet" type="text/css" href="<%=basePath%>/<fmt:message key="application.version"/>/css/style_hbpSA_css.jsp" />;};
s{<link rel="stylesheet" type="text/css" href="../css/style_hbp_css.jsp" />}{
<link rel="stylesheet" type="text/css" href="<%=basePath%>/<fmt:message key="application.version"/>/css/style_hbp_css.jsp" />};
s{<%@ include file="../common/cmufx.jsp" %>}{};
s{../img/banner.jpg}{<%=basePath%>/<fmt:message key="application.version"/>/img/banner.jpg};
print;
}
Merci pour votre réponse, mais les données sont correctes et il est moi qui introduit la faute de frappe en collant ici. :( J'ai échappé au '.', Mais pas de succès –
Je ne vois aucune différence entre votre script (qui fonctionne bien) et le mien (que j'ai publié dans le corps de la question) Le * seulement * différence est que je lis d'un fichier séparé en appelant 'script.pl FILE_NAME' –
Je pense que slim pourrait être juste alors.Quel système d'exploitation utilisez-vous? Est-ce que les fins de ligne dans le fichier correspondent aux fins de ligne de votre système d'exploitation? –