如何在Perl中进行非插值字符串插值

一旦确定其中包含“$”,如何使下面的字符串进行插值?

use strict;

my $yrs;
my $stg = 'He is $yrs years old.';

if ($stg =~ /[@#$%/]/) {

    print "Matched dollar sign.n";
    $yrs = '4';
    
} else {

    print "No Match.n";

}

print "Year's scalar: $yrsn";
print $stg . "n";

我得到:

He is $yrs years old.

我想得到:

He is 4 years old.

回答

您正在尝试编写模板系统。周围有很多这样的东西,所以你不必费心去编写自己的。

use Template qw( );

my $template = 'He is [% years %] years old.';

my $vars = {
   years => 4,
};

my $tt = Template->new();
$tt->process($template, $vars, my $output)
   or die($tt->error());

say $output;


以上是如何在Perl中进行非插值字符串插值的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>