0 perl
我想在$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");
}
...
Run Code Online (Sandbox Code Playgroud)
不要理会排除结束括号..
注意whare我打电话$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";
}
Run Code Online (Sandbox Code Playgroud)
我也希望做同样的事情$color但是,一旦$font被弄清楚,我应该能够解决这个问题.
谢谢你的帮助.
小智 10
如果$ font等于"arial"并且您想要访问$ arial,则需要:
${$font}
Run Code Online (Sandbox Code Playgroud)
但你几乎肯定不想这样做.我不太确定你在代码中尝试做什么,但似乎使用哈希会更简单,更好:
$fonts{'arial'} = "/path/to/arial"
Run Code Online (Sandbox Code Playgroud)
另请注意,如果您使用的话,$ {$ font}示例将无效
use strict;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
510 次 |
| 最近记录: |