我正在编写一个脚本,其中包含一些传递给字符串的变量,然后将它们打印出来。初始字符串只有 6 行,我不需要外部文件,但我现在有一个可以填充 1000 多行的新字符串。新字符串还有一些字段将被脚本中声明的变量替换。
文本文件是这样的:
Hello $name
代码应该有几个部分。
- 变量声明
my $name = 'Foo';
- 打开文件并将其读入字符串。
my $content;
open(my $fh, '<', $filename) or die "cannot open file $filename";
{
local $/;
$content = <$fh>;
}
close($fh);
- 打印字符串
print $content
预期结果:
Hello Foo
我想知道是否可以从文件中读取“Hello $name”但将其打印为“Hello Foo”,因为变量名称被声明为 Foo。
最佳答案
所以你希望你的文件是一个模板。为什么不使用适当的模板语言,如 this one ?
use Template qw( );
my %vars = (
name => "Foo",
);
my $tt = Template->new();
$tt->process($qfn, \%vars)
or die($tt->error());
模板:
Hello [% name %]
可以使用 ->process
的第三个参数捕获而不是打印输出。
关于perl - (Perl) 从文件中读取字符串时是否可以插入变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57812884/