my @patterns = (qr/#.*/, qr{$^\s+}, qr{\s+$}, qr/^,/); sub apply_patterns { $_[0] =~ s/$_// for (@patterns[ @_[ 1 .. $#_ ] ]); } #### my %patterns = ( comment => qr/#.*/, leadingSpaces => qr{$^\s+}, trailingSpaces => qr{\s+$}, leadingComma => qr/^,/ ); while(my $line = ) { $line =~ s/$_// for %patterns{qw/comment trailingSpaces/}; }