I try to use a variable i inside the << block. But it fails because of the compilation errors
Global symbol “$i_0” requires explicit package name at
D:/development/perl/SupportCases/createFTL.pl line 76.
Global symbol “$i_0” requires explicit package name at
D:/development/perl/SupportCases/createFTL.pl line 76.
Global symbol “$i_1” requires explicit package name at
D:/development/perl/SupportCases/createFTL.pl line 76.
Global symbol “$i_1” requires explicit package name at
D:/development/perl/SupportCases/createFTL.pl line 76.
Global symbol “$i_2” requires explicit package name at
D:/development/perl/SupportCases/createFTL.pl line 76.
Global symbol “$i_2” requires explicit package name at
D:/development/perl/SupportCases/createFTL.pl line 76.
Global symbol “$i_0” requires explicit package name at
D:/development/perl/SupportCases/createFTL.pl line 76.
Global symbol “$i_1” requires explicit package name at
D:/development/perl/SupportCases/createFTL.pl line 76.
Global symbol “$i_2” requires explicit package name at
D:/development/perl/SupportCases/createFTL.pl line 76.
How do I have to define the variables inside the << block?
Thanks
my $i = 1;
for ($i = 1; $i <=6; $i++){
my $block = <<BLOCK;
<#if ((model.fields.txt_Artikel_Z$i?? || model.fields.txt_Artikel_Z$i.value = "") &&
(model.fields.txt_Artikelnummer_Z$i?? || model.fields.txt_Artikelnummer_Z$i.value = "") &&
(model.fields.txt_Anzahl_Z$i?? || model.fields.txt_Anzahl_Z$i.value = "") &&
(model.fields.chk_Ware_aus_Z$i_0?? || model.fields.chk_Ware_aus_Z$i_0.value = "") &&
(model.fields.chk_Ware_aus_Z$i_1?? || model.fields.chk_Ware_aus_Z$i_1.value = "")&&
(model.fields.chk_Ware_aus_Z$i_2?? || model.fields.chk_Ware_aus_Z$i_2.value = ""))
&&
(!(model.fields.txt_Artikel_Z$i.value = "") &&
!(model.fields.txt_Artikelnummer_Z$i.value = "") &&
!(model.fields.txt_Anzahl_Z$i.value = "") &&
!(model.fields.chk_Ware_aus_Z$i_0.value = "") &&
!(model.fields.chk_Ware_aus_Z$i_1.value = "")&&
!(model.fields.chk_Ware_aus_Z$i_2.value = ""))
>
<#else>
<result type="ERROR"
field="txt_Fehlerbericht_Arbeiten_Z$i"
code="-1"
message="Komplette Zeile $i muss ausgefüllt sein!" />
</#if>
BLOCK
print "$block";
}
They work just like in any other double-quoted string. If you want
$varnameto be interpolated then use the syntax"...${varname}...". Same for the here-doc.