Las palabras se encuentran dentro de un array y usando map, agrego un mismo texto a todas las palabras contenidas y luego armo el %hash. El código es el siguiente:
Using perl Syntax Highlighting
- #!/usr/bin/env perl
- use v5.22;
- use Data::Dumper;
- ### @array con las palabras de entorno
- my @ext_env = qw (
- postscript tikzpicture pgfpicture ganttchart circuitikz
- forest tikzcd dependency pspicture psgraph
- );
- ### añado \begin{
- my $begin_env = join "\n", map { qq/\\begin\{$_/ } @ext_env;
- my @begin_env = split /\n/, $begin_env;
- ### añado \BEGIN{
- my $Begin_env = join "\n", map { qq/\\BEGIN\{$_/ } @ext_env;
- my @Begin_env = split /\n/, $Begin_env;
- ### añado \end{
- my $end_env = join "\n", map { qq/\\end\{$_/ } @ext_env;
- my @end_env = split /\n/, $end_env;
- ### añado \END{
- my $End_env = join "\n", map { qq/\\END\{$_/ } @ext_env;
- my @End_env = split /\n/, $End_env;
- ### ahora creamos %hash con las palabras cambiadas
- my %begenv_in;
- @begenv_in{@begin_env} = @Begin_env;
- my %endenv_in;
- @endenv_in{@end_env} = @End_env;
- ### juntamos todo en un solo %hash
- my %cambios_in = (%begenv_in, %endenv_in);
- print Dumper(\%cambios_in);
- __END__
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4
Saludos,
Pablo