Data::Sectionを見つけて、興味を持ちました。残念ながら、package Letter::Resignation
そのページの例を実行することはできません。
Data::Section の実例はありますか?
Data::Sectionを見つけて、興味を持ちました。残念ながら、package Letter::Resignation
そのページの例を実行することはできません。
Data::Section の実例はありますか?
さて、ネット上でそれほど自明ではない検索を行った後、私は最終的にネット上でここで読むことができる1つの(そしておそらく唯一の)例を見つけることができました:
最後に、Data::Section の設定方法を説明しました。秘訣は、常にパッケージ名の参照が必要なことです。そして最後に、セクション内の変数を展開するには、テキスト文字列内の変数を展開するにはどうすればよいですか? - perlmonks.orgはとても役に立ちました。
したがって、パッケージ名を使用したくない場合の MWE は次のとおりです。
use strict;
use warnings;
use utf8;
use charnames ':full';
# sudo perl -MCPAN -e shell
# install Data::Section
use Data::Section -setup;
my $name = "testing \t escapes \n variable";
my $sections = main::->merged_section_data;
for my $filename (keys %$sections) {
printf "== %s ==\n%s\n", $filename, main::->section_data($filename);
}
my $template = main::->section_data ("test_file");
# expands variables in the template as well!!
$$template =~ s/(\$\w+)/$1/eeg;
die if $@; # needed on /ee, not /e
print $$template;
__DATA__
__[ test_file ]__
\t testing \r escapes \n data::section \t
Here
--
{{ $name }}
__END__
パッケージ名を使用する場合、わずかな違いがあります:
package aPerlTest;
use strict;
use warnings;
use utf8;
use charnames ':full';
# sudo perl -MCPAN -e shell
# install Data::Section
use Data::Section -setup;
my $name = "testing \t escapes \n variable";
my $sections = aPerlTest::->merged_section_data;
for my $filename (keys %$sections) {
printf "== %s ==\n%s\n", $filename, aPerlTest::->section_data($filename);
}
my $template = aPerlTest::->section_data ("test_file");
# expands variables in the template as well!!
$$template =~ s/(\$\w+)/$1/eeg;
die if $@; # needed on /ee, not /e
print $$template;
__DATA__
__[ test_file ]__
\t testing \r escapes \n data::section \t
Here
--
{{ $name }}
__END__
どちらの場合も、ターミナル出力は次のとおりです。
$ perl aPerlTest.pl
== test_file ==
SCALAR(0x9f079d0)
\t testing \r escapes \n data::section \t
Here
--
{{ testing escapes
variable }}
これが誰かに役立つことを願っています - 乾杯!