Hier ist ein Beispiel, was ich versuche zu tun: Ich möchte einen Namen für die Eingabe "definiert" und dann, wenn es in eine Funktion genommen wird, nur dann wird es ersetzen alle 3 Variablen.Perl: String der Variable innerhalb einer Variablen
$place_holder = 'f${file_case}_lalal_${subcase}_${test}';
.... woanders in einer anderen Funktion:
Lesedatei auf jede Zeile, die 3 Satz von Zahlen, die die $ file_case, $ Unterfall, $ test
Leiderwhile(<IN>){
($file_case, $subcase, $tset) = split;
$input = $place_holder #### line #3 here needs to fix
print " $input \n";
}
repräsentieren Es wird f $ {file_case} lalal $ {subcase} _ $ {test} für jede einzelne Zeile ausgegeben. Ich möchte, dass diese Variablen ersetzt werden. Wie mache ich das, wie ändere ich Zeile 3 um zu ändern, damit ich ausgeben kann, wie ich wollte? Ich möchte den Eingangsnamen im Unterprogramm nicht definieren, er muss im Wesentlichen sein.
Hinweis: Die Interpolation erfolgt nur in Strings mit doppelten Anführungszeichen, aber Ihr Beispiel ist einfach zitiert. –
Ich weiß. Der $ place_holder verhält sich zu diesem Zeitpunkt wie eine Funktion, die 3 Variablen sind noch NICHT bekannt. daher NICHT zu ersetzen. Aber der $ place_holder muss sich an einem Ort befinden, an dem der Benutzer leicht zu dem wechseln kann, was er möchte. Der Rest der Substitution ist in Funktionen verborgen, in denen der Benutzer keine Änderungen vornehmen muss. –