Ajout d'une variable de chaîne de chaîne de caractères fixe en Perl
J'ai une variable qui est inscrit à une invite de commandes:
my $name = <>;
Je veux ajouter une chaîne de caractères fixe '_one'
(dans une autre variable).
E. g. si $name = Smith
, puis il devient 'Smith_one'
J'ai essayé plusieurs diverses façons, et qui ne me donne pas les bons résultats, tels que:
my $one = "${name}_one";
^ Le _one
s'affiche sur la ligne suivante quand j'ai de l'imprimer et lorsque je l'utilise, le _one est pas du tout inclus.
Aussi:
my $one = $name."_one";
^ Le '_one'
apparaît à la début de la chaîne.
Et:
my $end = '_one';
my $one = $name.$end;
or
my $one = "$name$end";
Aucun de ces produire le résultat que je veux, donc je dois être en manque de quelque chose lié à la façon dont l'entrée est formaté à partir de l'invite de commandes, peut-être. Idées appréciées!
OriginalL'auteur dgBP | 2012-09-17
Vous devez vous connecter pour publier un commentaire.
Votre problème n'est pas lié à la chaîne ajoutant: Lorsque vous lisez une ligne (par exemple, via
<>
), l'enregistrement en entrée du séparateur est inclus dans cette chaîne; c'est généralement un retour à la ligne\n
. Pour supprimer le saut de ligne,chomp
la variable:Pour interpoler une variable dans une chaîne de caractères, vous n'avez généralement pas besoin de la
${name}
syntaxe utilisée. Ces lignes vont toutes ajouter_one
de votre chaîne et de créer une nouvelle chaîne:Et cela ajoute
_one
à votre chaîne et toujours stocker dans$name
:Drôle; je me demandais comment beaucoup mieux d'utiliser
"${name}_one"
que maladroits des constructions comme les"$name\_one"
ou$name . "_one"
.Je vous remercie pour votre montage. Maintenant, je suis aussi dans le “
${foo}
est clair syntaxe, pas un anachronique bash-isme” du camp, et que mes suggestions ont été de pire en pire. J'ai modifié en conséquence.OriginalL'auteur amon