package MWTemplate; use v5.30; use feature "signatures"; no warnings "experimental::signatures"; my $DEBUG = 1; sub Parse($input, $template_name) { my ($contents) = $input =~ /\{\{ \s* $template_name \s* \| (.*?) \}\}/sx; return 0 unless $contents; my @params = split /\|/, $contents; my @positional_params; my %named_params; foreach (@params) { if(/(.*?)=(.*)/) { $named_params{$1} = $2 } else { push @positional_params, $_ } } return {positional_params => \@positional_params, named_params => \%named_params}; } 1;