If you want a parser that you don't have to change when you change your set of input criteria, you can do something like the following:
use strict; use warnings; use Data::Dumper; my %config = map { /^((?:inc|exc)_\w+)=(.*)$/ } <DATA>; print Dumper(\%config); __DATA__ inc_albums= a list of albums to include inc_genres= a list of genres to include inc_artists= a list of artists to include inc_songs= a list of songs to include inc_year= a list of years to include exc_albums= a list of albums to exclude exc_genres= a list of genres to exclude exc_artists= a list of artists to exclude exc_songs= a list of songs to exclude exc_year= a list of years to exclude
Which gives:
$VAR1 = { 'inc_genres' => ' a list of genres to include', 'inc_year' => ' a list of years to include', 'exc_albums' => ' a list of albums to exclude', 'inc_albums' => ' a list of albums to include', 'exc_year' => ' a list of years to exclude', 'exc_songs' => ' a list of songs to exclude', 'inc_artists' => ' a list of artists to include', 'inc_songs' => ' a list of songs to include', 'exc_artists' => ' a list of artists to exclude', 'exc_genres' => ' a list of genres to exclude' };
In reply to Re: Changing variable names in a loop
by ig
in thread Changing variable names in a loop
by Mad_Mac
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |