@ds_search = grep(/^(substr($tablename, 0, 5))/, @{$ref_new_table_par->[3]});
2014-10-16T14:02:59 pqwürd ich dir so und so von abraten. regexes sollten nicht noch unleserlicher als nötig gemacht werden.
warum schreibst du das nicht in eine variable?
@ds_search = grep(/^(??{substr($tablename, 0, 5)})/, @{$ref_new_table_par->[3]});
@ds_search = map({$_ =~ /^(substr($tablename, 0, 5))/}, @{$ref_new_table_par->[3]});
@ds_search = map({$_ =~ /^(??{substr($tablename, 0, 5)})/}, @{$ref_new_table_par->[3]});
@ds_search = map({$_ if /^(??{substr($tablename, 0, 5)})/}, @{$ref_new_table_par->[3]});