Я пытаюсь вставить переменную $font1
ниже. Переменная $font1
является именем шрифта, например, Arial. Я действительно хочу, чтобы он возвращал $arial
(или что бы то ни было $font
) как переменную.
Когда вызывается $arial
, он получает arial.ttf из папки на моем сервере через get_fonts.pl.
Я перепробовал все \$$font
'"$font"'
и все возможные варианты этого.
Я даже пытался 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");
}
...
Не обращайте внимания на исключенные конечные скобки ..
Обратите внимание, что я позвонил $font1
.. Если я позвоню $arialb
, все в порядке.
Вот шрифты
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";
}
Я также хочу сделать то же самое с $color
, но, как только $font
выяснится, я смогу это выяснить.
Спасибо за любую помощь.