Ich versuche, eine Variable $font1
unten einzufügen. Die Variable $font1
ist der Name der Schriftart, z. Arial. Ich möchte wirklich, dass es $arial
(oder was auch immer $font
ist) als Variable zurückgibt.Wie kann ich einen Variablennamen aus einer Zeichenfolge in Perl einfügen?
Wenn $arial
aufgerufen wird, wird die Datei arial.ttf aus einem Ordner auf meinem Server über get_fonts.pl abgerufen.
Ich habe alles \$$font
'"$font"'
und jede mögliche Variante davon versucht.
Ich habe sogar versucht if ($font=="arial"){$font = a ton of different attempts;}
do "get_fonts.pl";
&GetFonts($im);
foreach $key (keys %ENV) {
if($key !~ /[A-Z]/){
if ($key="sometext") {
$text="$ENV{'typetext'}";
$color="$ENV{'typecolor'}";
$font="$ENV{'typefont'}";
$size="$ENV{'typesize'}";
$string = qq~ $text ~;
$gd_text = GD::Text->new() or die GD::Text::error();
$gd_text->set_font($arialb, $size) or die $gd_text->error;
$gd_text->set_text($string);
my ($w, $h) = $gd_text->get('width', 'height');
$y1 = (300/6);
if ($w <= 380) {
$x1 = ((400/2) - ($w/2));
$im->stringFT("$blue", $font1, $size, 0, $x1, $y1, "$string");
}
...
bis ausgeschlossen endend Klammern Achtet nicht ..
Hinweis whare ich $font1
genannt .. Wenn ich $arialb
alles ist in Ordnung rufen.
ist hier Schriftarten bekommen
sub GetFonts {
my($im) = $_[0];
$arial = "fonts/arial.ttf";
# I tried Tons of things here to no avail
if ($font=="arialb") {
$font1 = '$arialb'; # and so many different other attempts
}
$arialb = "fonts/ariblk.ttf";
$ariali = "fonts/ariali.ttf";
$arialbi = "fonts/arialbi.ttf";
$comic = "fonts/comic.ttf";
$comicb = "fonts/comicbd.ttf";
$verdana = "fonts/verdana.ttf";
$verdanab = "fonts/verdanab.ttf";
$verdanai = "fonts/verdanai.ttf";
$verdanabi = "fonts/verdanaz.ttf";
}
ich auch mit $color
das gleiche zu tun wünschen, aber, sobald $font
wird herausgefunden, sollte ich in der Lage sein, dass, um Fiqure.
Danke für jede Hilfe.
Vielleicht werden Sie nicht hören wollen, aber was Sie wollen eine ziemlich schlechte Idee zu tun ist. Siehe hier zur Diskussion: http://perl.plover.com/varvarname.html – Telemachus
@ Jimbo: Ich habe ein wenig aufräumen auf Ihre Formatierung, aber ehrlich gesagt ist es eine Katastrophe. Kannst du bitte die Blöcke säubern und ein paar Eindrücke hinzufügen? Sie können nicht erwarten, dass sich viele Menschen darum bemühen, Ihnen zu helfen. – Telemachus
Noch eine Sache: Wenn Sie alle Ihre Programme mit 'Warnungen verwenden 'starten, erhalten Sie viele hilfreiche - gut - Warnungen. So hätten Sie das gesehen: Argument "fonts/arial.ttf" ist nicht numerisch in numerischer eq (==) bei Zeile . –
Telemachus