#!/usr/bin/perl use 5.010; use strict; use warnings; my $reS = qr{\..*?\s*?\(\s*?([0-9a-zA-Z_]*?)\s*?\)}s; my $reM = qr{\..*?\s*?\(\s*?\{\s*?(.*?)\s*?\}\s*?\)}s; open my $fh, "analog_atop_inst.v" or die $!; my @fields=(); my @matchM=(); my @matchS=(); my @allfield=(); my $entire_dataS = ''; my $entire_dataM = ''; while (<$fh>) { chomp; $entire_dataS .= $_; $entire_dataM .= $_; } #print $entire_data; while (1) { if ($entire_dataS =~ /$reS/){ push @matchS, $1; $entire_dataS = $';} else { last;} } while (1) { if ($entire_dataM =~ /$reM/){ push @matchM, $1; $entire_dataM = $';} else { last;} } #say "@@@@@@@@@@@@ MatchS @@@@@@@@@@@@@@@@@"; foreach my $fieldS (@matchS){ push @allfield, $fieldS ; } #say "############ MatchM #################"; foreach my $fieldM (@matchM){ my @fieldsplit = split / ,\s+/, $fieldM; foreach my $fieldMs (@fieldsplit){ push @allfield, $fieldMs ; } } foreach my $fieldT (@allfield){ say $fieldT; }
In reply to Re^4: how to extract multiple pattern into array
by herman4016
in thread how to extract multiple pattern into array
by herman4016
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |